>>252
こんな感じになります。

CUR_SP = (__int64)hlen + rlen * (RecNo - 1);
#ifdef DBG
wsprintf(DBG_BUF, "(%I64d)\n", CUR_SP);
DbaDebugWrite(DBG_BUF);
#endif

CUR_SP自体が2の31乗を越えた場合には、
CUR_SPを31bit右シフトした結果を表示させたら
-1になりました。