もう少し、PBR

seg000:0103 loc_7D03:                               ; CODE XREF: seg000:00EE^Xj
seg000:0103                 mov     cx, es:[di+1Ah]
seg000:0107                 mov     ax, es:[di+1Ch]
seg000:010B                 add     ax, 1FFh
seg000:010E                 shr     ax, 1
seg000:0110                 mov     [bp+25h], ah
seg000:0113                 pop     dx
seg000:0114                 pop     ax
seg000:0115                 push    cx
seg000:0116                 mov     cx, [bp+16h]
seg000:0119                 sub     ax, cx
seg000:011B                 sbb     dx, 0

CXレジスタにES:[DI+1Ah]の内容を転送。クラスタ番号の下位。
AXレジスタにES:[DI+1Ch]の内容を転送。ファイルサイズ。
AX+511/2 → 上位8bitは、更に、/256と考えられるので、都合、/512。
[BP+25h]にAHレジスタの内容を転送。
DXレジスタ、AXレジスタ、復元。
CXレジスタ、一時退避。
CXレジスタに[BP+16h]の内容を転送。FATのセクタ数。
AXレジスタの内容からCXレジスタの内容を減算。
DXレジスタの内容からボロー減算。

seg000:011E                 mov     es, word ptr [bp+54h]
seg000:0121 loc_7D21:                               ; CODE XREF: seg000:012A^Yj
seg000:0121                 push    cx
seg000:0122                 mov     byte ptr [bp+2Bh], 1
seg000:0126                 call    sub_7D83
seg000:0129                 pop     cx
seg000:012A                 loop    loc_7D21

ESレジスタに[BP+54h]の内容を転送。
CXレジスタ、一時退避。
[BP+2Bh]に即値:1を転送。<意味不明
sub_7D83をコール。ファイル読み込み。
CXレジスタ、復元。
CXレジスタ回数分繰り返す。

seg000:012C                 pop     bx
seg000:012D                 mov     es, word ptr [bp+42h]
seg000:0130
seg000:0130 loc_7D30:                               ; CODE XREF: seg000:017B^Yj
seg000:0130                 mov     ax, [bp+3Eh]
seg000:0133                 mov     [bp+2Bh], al
seg000:0136                 sub     [bp+25h], al
seg000:0139                 pushf
seg000:013A                 jnb     short loc_7D42
seg000:013C                 mov     dl, [bp+25h]
seg000:013F                 add     [bp+2Bh], dl

BXレジスタ、復元。
ESレジスタに[BP+42h]の内容を転送。
AXレジスタに[BP+3Eh]の内容を転送。
[BP+2Bh]にALレジスタの内容を転送。<意味不明
[BP+25h]の内容からALレジスタの内容を減算。<意味不明
フラグレジスタ、一時退避。
キャリーフラグがオフなら、loc_7D42へジャンプ。
DLレジスタに[BP+25h]の内容を転送。
[BP+2Bh]の内容からDLレジスタの内容を加算。

seg000:0142 loc_7D42:                               ; CODE XREF: seg000:013A^Xj
seg000:0142                 push    bx
seg000:0143                 dec     bx
seg000:0144                 dec     bx
seg000:0145                 mul     bx
seg000:0147                 add     ax, [bp+2Ch]
seg000:014A                 adc     dx, [bp+2Eh]
seg000:014D                 call    sub_7D83
seg000:0150                 pop     bx
seg000:0151                 push    es
seg000:0152                 mov     ax, bx
seg000:0154                 shl     bx, 1
seg000:0156                 les     di, [bp+54h]
seg000:0159                 jb      short loc_7D5D

BXレジスタ、一時退避。
BXレジスタの内容を2減算。
AX*BX=DX:AX
AXレジスタの内容に[BP+2Ch]の内容を加算。
DXレジスタの内容に[BP+2Eh]の内容をキャリー加算。
sub_7D83をコール。ファイル読み込み。
BXレジスタ、復元。
ESレジスタ、一時退避。
AXレジスタにBXレジスタの内容を転写。
BXレジスタの内容を左に1ビットシフト。
[BP+54h]がポイントする far ポインタ を、ES:DIにそれぞれ転送。
JB=JC、どこでキャリーが発生する可能性があるんだ?
その前の、SHLか。
あいやぁ... だいぶ、こんがらがってきたぞ。