Assembler code
cseg01:1044
cseg01:1044 ; =============== S U B R O U T I N E =======================================
cseg01:1044
cseg01:1044 ; Attributes: library function
cseg01:1044
cseg01:1044 __MemFree proc far ; CODE XREF: _ffree_+1A↓p
cseg01:1044 ; _nfree_+31↓p ...
cseg01:1044
cseg01:1044 ; FUNCTION CHUNK AT cseg01:1041 SIZE 00000003 BYTES
cseg01:1044
cseg01:1044 push si
cseg01:1045 push di
cseg01:1046 push cx
cseg01:1047 push ds
cseg01:1048 mov ds, dx
cseg01:104A or ax, ax
cseg01:104C jz short loc_1041
cseg01:104E mov si, ax
cseg01:1050 sub si, 2
cseg01:1053 mov ax, [si]
cseg01:1055 test al, 1
cseg01:1057 jz short loc_1041
cseg01:1059 and al, 0FEh
cseg01:105B mov di, si
cseg01:105D add di, ax
cseg01:105F test word ptr [di], 1
cseg01:1063 jnz short loc_1084
cseg01:1065 cmp di, [bx+6]
cseg01:1068 jnz short loc_106D
cseg01:106A mov [bx+6], si
cseg01:106D
cseg01:106D loc_106D: ; CODE XREF: __MemFree+24↑j
cseg01:106D add ax, [di]
cseg01:106F mov [si], ax
cseg01:1071 push bx