4:


: , . , : MOV EAX,EBX, EAX , . .

: , ( , ), . , , , MOV EAX,EBX, - . ,   , (, Jxx), , "", . , . . !

MOV ESI, EAX

SUB ESI, ECX

XCHG EDX, EBP

LEA EBX, [ESI+EDI]

ROR AL,8

MOV ESI, offset body_begin

XOR ECX, ECX

SUB EDI, EAX

ADD EBP, ESI

NOT EDI

MOV EDI, ESI

MOV ECX, offset body_end - body_begin

CALL $+5

SUB EAX, ECX

NOT EBP

POP EBX

XOR EAX, EAX

PUSH EBX

SUB EBP,ECX

LODSB

MOV EAX, EAX

ADD EDX, ESI

XCHG EBX, EBX

XOR AL, 66h

XOR EDX, EDX

ADD EAX, EDX

STOSB

MOV EBP, EAX

DEC ECX

XCHG EBX,EBX

MOV EBP,ESI

JNZ $+4

JMP EBX

body_begin:

; //

body_end:

 10 ,

, , , . , MOV EAX, EBX --> ADD EAX, ECX > MOV EAX, ECX.