SilsAl,
you are up against a nice team of programmers as well as Alexey in EssentialNetToolz 3
The Tamos CRC checking is MUCH more comprehensive since CV3.2 and quite fun to defeat

There are several methods to try. You could actually dump all the TFORM resources after a decrypt and poke them back to rebuilt.exe. Or as Solomon did. Log ALL the CRC results in an array at the end of the exe and poke them back...!!!
However I prefer the patented
'SV-Black-Box' filter
I played with ENT v3.1 b102 . They use the same complex crc check and I also notice that even ASPR is new...check out the dynamic 61,FF,E0.....

LOL
FOXTHREE WHERE R U
So I can only say just start the target and pres CTL-D you are probably in the crc loop. It is so massive and slooooow these days it's pretty much impossible to NOT to find it.......
I can give you some pointers regarding the latest ENT 3.1 build :-
CRC range check is from 401000 to 555000.The essential part - for us

of the CRC code is at 553FB2. Here EBP holds the current memory range check. It increases with 0x40 bytes at a time. Now here we should log all the CRC results that are relevant for us. For example we need to patch out the bytes at 553FB2 and take us somewhere clean so we can do something about this shit.
:00553FA7 0106 add dword ptr [esi], eax <-here is stored 16 byte CRC/hash result
:00553FA9 015E04 add dword ptr [esi+04], ebx
:00553FAC 014E08 add dword ptr [esi+08], ecx
:00553FAF 01560C add dword ptr [esi+0C], edx
:00553FB2 5D pop ebp
<- we patch here to JMP 55C000
:00553FB3 5F pop edi
<- and filter the hash/crc results
:00553FB4 5E pop esi
:00553FB5 5B pop ebx
:00553FB6 C3 ret
So here follows the system logic for filtering the CRC checks :-
Find a good area of code outside of the CRC range to patch some code in. I found area 0x15C000 (RVA 55C000)
So at RVA 553FB2 we will change the POP's to JMP 55C000 (E9 49 80 00 00]
Also set a 'BPMB 553FB2 if EBP==553F80' and write down the GOOD 16 byte result - for me it is :-
F0 7C FC 44 51 47 03 8C-D5 1A 36 B6 C3 D7 D5 A7
This is the value we have to poke back into the system.
Hex this into offset 0x15C100
We also need to save the checked bytes value - 00553F80 as well because our changes are in range 553FB2->
The next 0x40 bytes will be 00553FC0.
Hex this value - 80 3F 55 00 - into offset 0x15C060
We also need a counter for dword REPNZ . lets use offset 0x15C0A0.
Add 1 to the number of patches we have eg, 1 patch here so value is
2
Now enter the following code into RVA 55C000 (0x15C000)
0167:0055C000 60 PUSHAD
<- save all registers
0167:0055C001 8BC5 MOV EAX,EBP
<- mov eax our current check address
0167:0055C003 BF60C05500 MOV EDI,0055C060
<- mov edi our patched address
0167:0055C008 8B0DA0C05500 MOV ECX,[0055C0A0]
<- mov ecx our counter
0167:0055C00E F2AF REPNZ SCASD
<- match eax value in our patch array ?
0167:0055C010 85C9 TEST ECX,ECX
<- 0 == no match 1 == found
0167:0055C012 7418 JZ 0055C02C
<- jump if not found
0167:0055C014 A1A0C05500 MOV EAX,[0055C0A0]
<- we found a match, now which bytes !!!!
0167:0055C019 2BC1 SUB EAX,ECX
<- calculate the correct bytes
0167:0055C01B 48 DEC EAX
<- just some trickery
0167:0055C01C C1E004 SHL EAX,04
<- to fix the array
0167:0055C01F 8BFE MOV EDI,ESI
<- find current CRC check
0167:0055C021 BE00C15500 MOV ESI,0055C100
<- get our good 16 bytes to poke back
0167:0055C026 2BF0 SUB ESI,EAX
<- match the CRC result to our patch bytes
0167:0055C028 A5 MOVSD
0167:0055C029 A5 MOVSD
0167:0055C02A A5 MOVSD
0167:0055C02B A5 MOVSD
<- overwrite the CRC check with CORRECT value
0167:0055C02C 61 POPAD
<- return state and ret back to codewoods
0167:0055C02D 5D POP EBP
0167:0055C02E 5F POP EDI
0167:0055C02F 5E POP ESI
0167:0055C030 5B POP EBX
0167:0055C031 C3 RET
Now to add more patches, as u surely need to erm 'Evaluation' !!!!, then add the relevant datas to the next offsets
i.e increment the 'counter' add the CRC result and add the patch byte value to the black-box and CRC is history.
I am sure you can work it out.
Spl/\j