Delphi 1
; procedure TObject.Free
ObjectFree:
MOV BX,SP
LES DI,SS:[BX+4]
MOV AX,ES
OR AX,DI
JE @@1
MOV AL,1
PUSH AX
PUSH ES
PUSH DI
LES DI,ES:[DI]
CALL ES:[DI].vtDestroy
@@1: RETF 4
Delphi 2
procedure TObject.Free;
asm
TEST EAX,EAX
JE @@exit
MOV ECX,[EAX]
MOV DL,1
CALL dword ptr [ECX].vtDestroy
@@exit:
end;