[ENABLE]

Define(MemStart,00400000)

Define(MemFinish,02B31000)

GlobalAlloc(DumpM,100000000)

GlobalAlloc(CRC1,1000)

GlobalAlloc(CRC2,1000)

GlobalAlloc(CRC3,1000)

GlobalAlloc(CRC4,1000)

GlobalAlloc(CRC5,1000)

GlobalAlloc(CRC6,1000)

Label(Original1)

Label(Original2)

Label(Original3)

Label(Original4)

Label(Original5)

Label(Original6)

Label(Return1)

Label(Return2)

Label(Return3)

Label(Return4)

Label(Return5)

Label(Return6)

LoadBinary(DumpM,1.cem)


004B86D0:

jmp CRC1

Return1:

CRC1:

cmp ebx,MemStart

jb Original1

cmp ebx,MemFinish

ja Original1

sub ebx,MemStart

add ebx,DumpM


Original1:

movzx eax,byte ptr [ebx]

mov ecx,esi

jmp Return1


00453B24:

jmp CRC2

Return2:

CRC2:

cmp ebx,DumpM

jb Original2

cmp ebx,DumpM+MemFinish

ja Original2

add ebx,00400000

sub ebx,DumpM


Original2:

push ebx

mov ebx,ecx

push esi

push edi

jmp Return2


024EC4FC:

jmp CRC3

Return3:

CRC3:

cmp eax,MemStart

jb Original3

cmp eax,MemFinish

ja Original3

sub eax,MemStart

add eax,DumpM

Original3:

mov al,[eax]

movzx ecx,al

jmp Return3


008652BE:

jmp CRC4

Return4:

CRC4:

cmp eax,MemStart

jb Original4

cmp eax,MemFinish

ja Original4

sub eax,MemStart

add eax,DumpM


Original4:

movzx ecx,byte ptr [eax]

xor edx,ecx

jmp Return4


01C61AED:

jmp CRC5

Return5:


CRC5:

cmp esi,MemStart

jb Original5

cmp esi,MemFinish

ja Original5

sub esi,MemStart

add esi,DumpM

Original5:

shr ecx,02

repe movsd

jmp Return5


01C618E4:

jmp CRC6

db 90 90 90

Return6:


CRC6:

cmp esi,MemStart

jb Original6

cmp esi,MemFinish

ja Original6

sub esi,MemStart

add esi,DumpM


Original6:

bt [02346820],01

jmp Return6


[DISABLE]