[Reduction] #449: setvbuf

This commit is contained in:
nmlgc 2014-09-03 14:02:14 +02:00
parent 00e419e9da
commit 01a126da71
18 changed files with 189 additions and 2315 deletions

152
libs/BorlandC/setvbuf.asm Normal file
View File

@ -0,0 +1,152 @@
; int __cdecl setvbuf(FILE *fp, char *buf, int type, size_t size)
_setvbuf proc DIST
@@fp = DPTR_ dPtrSize + 2
@@buf = DPTR_ dPtrSize + 2 + dPtrSize
@@type = word ptr dPtrSize + 2 + (dPtrSize * 2)
@@size = word ptr dPtrSize + 2 + (dPtrSize * 2) + 2
push bp
mov bp, sp
push si
push di
LES_ bx, [bp+@@fp]
mov ax, ES_[bx+FILE.token]
cmp ax, word ptr [bp+@@fp]
jz short @@validType?
jmp @@retEOF
@@validType?:
cmp [bp+@@type], 2
jle short @@tooLarge?
jmp @@retEOF
@@tooLarge?:
cmp [bp+@@size], 7FFFh
jbe short @@stdoutStart?
jmp @@retEOF
@@stdoutStart?:
cmp _stdoutStarted, 0
jnz short @@stdinStart?
cmp word ptr [bp+@@fp], offset stdout
jnz short @@stdinStart?
mov _stdoutStarted, 1
jmp short @@reposition?
@@stdinStart?:
cmp _stdinStarted, 0
jnz short @@reposition?
cmp word ptr [bp+@@fp], offset stdin
jnz short @@reposition?
mov _stdinStarted, 1
@@reposition?:
LES_ bx, [bp+@@fp]
cmp ES_[bx+FILE.level], 0
jz short @@freeBuffer?
mov ax, 1
push ax
xor ax, ax
push ax
push ax
if LDATA
push word ptr [bp+@@fp+2]
endif
push bx
nopcall _fseek
add sp, 6 + dPtrSize
@@freeBuffer?:
LES_ bx, [bp+@@fp]
test byte ptr ES_[bx+FILE.flags], 4
jz short @@resetBuffer
if LDATA
push word ptr ES_[bx+FILE._buffer+2]
endif
push word ptr ES_[bx+FILE._buffer]
nopcall _free
if LDATA
pop cx
endif
pop cx
@@resetBuffer:
LES_ bx, [bp+@@fp]
and ES_[bx+FILE.flags], 0FFF3h
mov ES_[bx+FILE._bsize], 0
if LDATA
mov dx, word ptr [bp+@@fp+2]
endif
mov ax, word ptr [bp+@@fp]
add ax, FILE.hold
if LDATA
mov word ptr ES_[bx+FILE._buffer+2], dx
mov word ptr ES_[bx+FILE._buffer], ax
mov word ptr ES_[bx+FILE._curp+2], dx
else
mov word ptr ES_[bx+FILE._buffer], ax
endif
mov word ptr ES_[bx+FILE._curp], ax
cmp [bp+@@type], 2
jz short @@ret0
cmp [bp+@@size], 0
jbe short @@ret0
if LDATA
mov word ptr _exitbuf+2, seg __xfflush
mov word ptr _exitbuf, offset __xfflush
mov ax, word ptr [bp+@@buf]
or ax, word ptr [bp+@@buf+2]
else
mov word ptr _exitbuf, offset __xfflush
cmp word ptr [bp+@@buf], 0
endif
jnz short @@setBuffer
push [bp+@@size]
nopcall _malloc
pop cx
if LDATA
mov word ptr [bp+@@buf+2], dx
mov word ptr [bp+@@buf], ax
or ax, dx
else
mov word ptr [bp+@@buf], ax
or ax, ax
endif
jz short @@retEOF
LES_ bx, [bp+@@fp]
or ES_[bx+FILE.flags], 4
jmp short @@setBuffer
@@retEOF:
mov ax, 0FFFFh
jmp short @@ret
@@setBuffer:
LES_ bx, [bp+@@fp]
if LDATA
mov dx, word ptr [bp+@@buf+2]
mov ax, word ptr [bp+@@buf]
mov word ptr ES_[bx+FILE._curp+2], dx
mov word ptr ES_[bx+FILE._curp], ax
mov word ptr ES_[bx+FILE._buffer+2], dx
mov word ptr ES_[bx+FILE._buffer], ax
else
mov ax, word ptr [bp+@@buf]
mov word ptr ES_[bx+FILE._curp], ax
mov word ptr ES_[bx+FILE._buffer], ax
endif
mov ax, [bp+@@size]
mov ES_[bx+FILE._bsize], ax
cmp [bp+@@type], 1
jnz short @@ret0
or ES_[bx+FILE.flags], 8
@@ret0:
xor ax, ax
@@ret:
pop di
pop si
pop bp
ret
_setvbuf endp

View File

@ -0,0 +1,2 @@
_stdinStarted dw 0
_stdoutStarted dw 0

View File

@ -5931,9 +5931,7 @@ loc_3FD9:
push ax ; buf
push word ptr [bp+stream+2]
push word ptr [bp+stream] ; stream
nop
push cs
call near ptr _setvbuf
nopcall _setvbuf
add sp, 0Ch
or ax, ax
jz short loc_4003
@ -7700,148 +7698,7 @@ loc_52C5:
retf
sub_5189 endp
; =============== S U B R O U T I N E =======================================
; Attributes: library function bp-based frame
; int __cdecl setvbuf(FILE *stream, char *buf, int type, size_t size)
_setvbuf proc far
stream = dword ptr 6
buf = word ptr 0Ah
arg_6 = word ptr 0Ch
_type = word ptr 0Eh
_size = word ptr 10h
push bp
mov bp, sp
push si
push di
les bx, [bp+stream]
mov ax, es:[bx+12h]
cmp ax, word ptr [bp+stream]
jz short loc_52DF
jmp loc_53B6
; ---------------------------------------------------------------------------
loc_52DF:
cmp [bp+_type], 2
jle short loc_52E8
jmp loc_53B6
; ---------------------------------------------------------------------------
loc_52E8:
cmp [bp+_size], 7FFFh
jbe short loc_52F2
jmp loc_53B6
; ---------------------------------------------------------------------------
loc_52F2:
cmp word_13C9A, 0
jnz short loc_5308
cmp word ptr [bp+stream], 0CBEh
jnz short loc_5308
mov word_13C9A, 1
jmp short loc_531C
; ---------------------------------------------------------------------------
loc_5308:
cmp word_13C98, 0
jnz short loc_531C
cmp word ptr [bp+stream], 0CAAh
jnz short loc_531C
mov word_13C98, 1
loc_531C:
les bx, [bp+stream]
cmp word ptr es:[bx], 0
jz short loc_5339
mov ax, 1
push ax ; whence
xor ax, ax
push ax
push ax ; offset
push word ptr [bp+stream+2]
push bx ; stream
nopcall _fseek
add sp, 0Ah
loc_5339:
les bx, [bp+stream]
test byte ptr es:[bx+2], 4
jz short loc_5352
push word ptr es:[bx+0Ah]
push word ptr es:[bx+8]
nop
push cs
call near ptr _farfree
pop cx
pop cx
loc_5352:
les bx, [bp+stream]
and word ptr es:[bx+2], 0FFF3h
mov word ptr es:[bx+6], 0
mov dx, word ptr [bp+stream+2]
mov ax, word ptr [bp+stream]
add ax, 5
mov es:[bx+0Ah], dx
mov es:[bx+8], ax
mov es:[bx+0Eh], dx
mov es:[bx+0Ch], ax
cmp [bp+_type], 2
jz short loc_53E6
cmp [bp+_size], 0
jbe short loc_53E6
mov word ptr _exitbuf+2, seg seg000
mov word ptr _exitbuf, 57C9h
mov ax, [bp+buf]
or ax, [bp+arg_6]
jnz short loc_53BB
push [bp+_size]
nop
push cs
call near ptr _malloc
pop cx
mov [bp+arg_6], dx
mov [bp+buf], ax
or ax, dx
jz short loc_53B6
les bx, [bp+stream]
or word ptr es:[bx+2], 4
jmp short loc_53BB
; ---------------------------------------------------------------------------
loc_53B6:
mov ax, 0FFFFh
jmp short loc_53E8
; ---------------------------------------------------------------------------
loc_53BB:
les bx, [bp+stream]
mov dx, [bp+arg_6]
mov ax, [bp+buf]
mov es:[bx+0Eh], dx
mov es:[bx+0Ch], ax
mov es:[bx+0Ah], dx
mov es:[bx+8], ax
mov ax, [bp+_size]
mov es:[bx+6], ax
cmp [bp+_type], 1
jnz short loc_53E6
or word ptr es:[bx+2], 8
loc_53E6:
xor ax, ax
loc_53E8:
pop di
pop si
pop bp
retf
_setvbuf endp
include libs/BorlandC/setvbuf.asm
; =============== S U B R O U T I N E =======================================
@ -28833,8 +28690,7 @@ include libs/BorlandC/putc[data].asm
db 0
db 5Ch ; \
db 0
word_13C98 dw 0
word_13C9A dw 0
include libs/BorlandC/setvbuf[data].asm
include libs/BorlandC/sysnerr[data].asm
include libs/BorlandC/xx[data].asm
aPrintScanfFloa db 'print scanf : floating point formats not linked',0Dh,0Ah,0

View File

@ -5924,8 +5924,7 @@ loc_40B1:
push ax
push word ptr [bp+buf+2] ; buf
push word ptr [bp+buf]
nop
call _setvbuf
nopcall _setvbuf
add sp, 0Ch
or ax, ax
jz short loc_40DB
@ -7603,154 +7602,7 @@ loc_5543:
retf
sub_5407 endp
; =============== S U B R O U T I N E =======================================
; Attributes: library function bp-based frame
; int __cdecl setvbuf(FILE *stream, char *buf, int type, size_t size)
_setvbuf proc far
stream = dword ptr 4
buf = dword ptr 8
_type = word ptr 0Ch
_size = word ptr 0Eh
push bp
mov bp, sp
push si
push di
_setvbuf endp ; sp-analysis failed
; =============== S U B R O U T I N E =======================================
; Attributes: library function
sub_554E proc far
les bx, [bp+6]
mov ax, es:[bx+12h]
cmp ax, [bp+6]
jz short loc_555D
jmp loc_5634
; ---------------------------------------------------------------------------
loc_555D:
cmp word ptr [bp+0Eh], 2
jle short loc_5566
jmp loc_5634
; ---------------------------------------------------------------------------
loc_5566:
cmp word ptr [bp+10h], 7FFFh
jbe short loc_5570
jmp loc_5634
; ---------------------------------------------------------------------------
loc_5570:
cmp word_131DA, 0
jnz short loc_5586
cmp word ptr [bp+6], 0A0Eh
jnz short loc_5586
mov word_131DA, 1
jmp short loc_559A
; ---------------------------------------------------------------------------
loc_5586:
cmp word_131D8, 0
jnz short loc_559A
cmp word ptr [bp+6], 9FAh
jnz short loc_559A
mov word_131D8, 1
loc_559A:
les bx, [bp+6]
cmp word ptr es:[bx], 0
jz short loc_55B7
mov ax, 1
push ax ; whence
xor ax, ax
push ax
push ax ; offset
push word ptr [bp+8]
push bx ; stream
nopcall _fseek
add sp, 0Ah
loc_55B7:
les bx, [bp+6]
test byte ptr es:[bx+2], 4
jz short loc_55D0
push word ptr es:[bx+0Ah]
push word ptr es:[bx+8]
nop
push cs
call near ptr _farfree
pop cx
pop cx
loc_55D0:
les bx, [bp+6]
and word ptr es:[bx+2], 0FFF3h
mov word ptr es:[bx+6], 0
mov dx, [bp+8]
mov ax, [bp+6]
add ax, 5
mov es:[bx+0Ah], dx
mov es:[bx+8], ax
mov es:[bx+0Eh], dx
mov es:[bx+0Ch], ax
cmp word ptr [bp+0Eh], 2
jz short loc_5664
cmp word ptr [bp+10h], 0
jbe short loc_5664
mov word ptr _exitbuf+2, seg seg000
mov word ptr _exitbuf, 5A44h
mov ax, [bp+0Ah]
or ax, [bp+0Ch]
jnz short loc_5639
push word ptr [bp+10h]
nop
push cs
call near ptr _malloc
pop cx
mov [bp+0Ch], dx
mov [bp+0Ah], ax
or ax, dx
jz short loc_5634
les bx, [bp+6]
or word ptr es:[bx+2], 4
jmp short loc_5639
; ---------------------------------------------------------------------------
loc_5634:
mov ax, 0FFFFh
jmp short loc_5666
; ---------------------------------------------------------------------------
loc_5639:
les bx, [bp+6]
mov dx, [bp+0Ch]
mov ax, [bp+0Ah]
mov es:[bx+0Eh], dx
mov es:[bx+0Ch], ax
mov es:[bx+0Ah], dx
mov es:[bx+8], ax
mov ax, [bp+10h]
mov es:[bx+6], ax
cmp word ptr [bp+0Eh], 1
jnz short loc_5664
or word ptr es:[bx+2], 8
loc_5664:
xor ax, ax
loc_5666:
pop di
pop si
pop bp
retf
sub_554E endp ; sp-analysis failed
include libs/BorlandC/setvbuf.asm
; ---------------------------------------------------------------------------
push bp
@ -26410,10 +26262,7 @@ include libs/BorlandC/putc[data].asm
db 0
db 5Ch ; \
db 0
word_131D8 dw 0
; sub_554E+46w
word_131DA dw 0
; sub_554E+30w
include libs/BorlandC/setvbuf[data].asm
include libs/BorlandC/sysnerr[data].asm
include libs/BorlandC/xx[data].asm
aPrintScanfFloa db 'print scanf : floating point formats not linked',0Dh,0Ah,0

View File

@ -9290,9 +9290,7 @@ loc_5631:
push ax ; buf
push word ptr [bp+stream+2]
push word ptr [bp+stream] ; stream
nop
push cs
call near ptr _setvbuf
nopcall _setvbuf
add sp, 0Ch
or ax, ax
jz short loc_565B
@ -11064,148 +11062,7 @@ loc_6941:
retf
sub_6805 endp
; =============== S U B R O U T I N E =======================================
; Attributes: library function bp-based frame
; int __cdecl setvbuf(FILE *stream, char *buf, int type, size_t size)
_setvbuf proc far
stream = dword ptr 6
buf = word ptr 0Ah
arg_6 = word ptr 0Ch
_type = word ptr 0Eh
_size = word ptr 10h
push bp
mov bp, sp
push si
push di
les bx, [bp+stream]
mov ax, es:[bx+12h]
cmp ax, word ptr [bp+stream]
jz short loc_695B
jmp loc_6A32
; ---------------------------------------------------------------------------
loc_695B:
cmp [bp+_type], 2
jle short loc_6964
jmp loc_6A32
; ---------------------------------------------------------------------------
loc_6964:
cmp [bp+_size], 7FFFh
jbe short loc_696E
jmp loc_6A32
; ---------------------------------------------------------------------------
loc_696E:
cmp word_369C6, 0
jnz short loc_6984
cmp word ptr [bp+stream], 1A6Ah
jnz short loc_6984
mov word_369C6, 1
jmp short loc_6998
; ---------------------------------------------------------------------------
loc_6984:
cmp word_369C4, 0
jnz short loc_6998
cmp word ptr [bp+stream], 1A56h
jnz short loc_6998
mov word_369C4, 1
loc_6998:
les bx, [bp+stream]
cmp word ptr es:[bx], 0
jz short loc_69B5
mov ax, 1
push ax ; whence
xor ax, ax
push ax
push ax ; offset
push word ptr [bp+stream+2]
push bx ; stream
nopcall _fseek
add sp, 0Ah
loc_69B5:
les bx, [bp+stream]
test byte ptr es:[bx+2], 4
jz short loc_69CE
push word ptr es:[bx+0Ah]
push word ptr es:[bx+8]
nop
push cs
call near ptr _farfree
pop cx
pop cx
loc_69CE:
les bx, [bp+stream]
and word ptr es:[bx+2], 0FFF3h
mov word ptr es:[bx+6], 0
mov dx, word ptr [bp+stream+2]
mov ax, word ptr [bp+stream]
add ax, 5
mov es:[bx+0Ah], dx
mov es:[bx+8], ax
mov es:[bx+0Eh], dx
mov es:[bx+0Ch], ax
cmp [bp+_type], 2
jz short loc_6A62
cmp [bp+_size], 0
jbe short loc_6A62
mov word ptr _exitbuf+2, seg seg000
mov word ptr _exitbuf, 6EB7h
mov ax, [bp+buf]
or ax, [bp+arg_6]
jnz short loc_6A37
push [bp+_size]
nop
push cs
call near ptr _malloc
pop cx
mov [bp+arg_6], dx
mov [bp+buf], ax
or ax, dx
jz short loc_6A32
les bx, [bp+stream]
or word ptr es:[bx+2], 4
jmp short loc_6A37
; ---------------------------------------------------------------------------
loc_6A32:
mov ax, 0FFFFh
jmp short loc_6A64
; ---------------------------------------------------------------------------
loc_6A37:
les bx, [bp+stream]
mov dx, [bp+arg_6]
mov ax, [bp+buf]
mov es:[bx+0Eh], dx
mov es:[bx+0Ch], ax
mov es:[bx+0Ah], dx
mov es:[bx+8], ax
mov ax, [bp+_size]
mov es:[bx+6], ax
cmp [bp+_type], 1
jnz short loc_6A62
or word ptr es:[bx+2], 8
loc_6A62:
xor ax, ax
loc_6A64:
pop di
pop si
pop bp
retf
_setvbuf endp
include libs/BorlandC/setvbuf.asm
; =============== S U B R O U T I N E =======================================
@ -47005,8 +46862,7 @@ include libs/BorlandC/putc[data].asm
db 0
db 5Ch ; \
db 0
word_369C4 dw 0
word_369C6 dw 0
include libs/BorlandC/setvbuf[data].asm
include libs/BorlandC/sysnerr[data].asm
include libs/BorlandC/xx[data].asm
aPrintScanfFloa db 'print scanf : floating point formats not linked',0Dh,0Ah,0

View File

@ -960,131 +960,7 @@ include libs/BorlandC/nearheap.asm
include libs/BorlandC/fflush.asm
include libs/BorlandC/flushall.asm
include libs/BorlandC/fseek.asm
; =============== S U B R O U T I N E =======================================
; Attributes: library function bp-based frame
; int __cdecl setvbuf(FILE *stream, char *buf, int type, size_t size)
_setvbuf proc near
stream = word ptr 4
buf = word ptr 6
_type = word ptr 8
_size = word ptr 0Ah
push bp
mov bp, sp
push si
push di
mov bx, [bp+stream]
mov ax, [bx+0Eh]
cmp ax, [bp+stream]
jz short loc_1EC0
jmp loc_1F6B
; ---------------------------------------------------------------------------
loc_1EC0:
cmp [bp+_type], 2
jle short loc_1EC9
jmp loc_1F6B
; ---------------------------------------------------------------------------
loc_1EC9:
cmp [bp+_size], 7FFFh
jbe short loc_1ED3
jmp loc_1F6B
; ---------------------------------------------------------------------------
loc_1ED3:
cmp word_2866, 0
jnz short loc_1EE9
cmp [bp+stream], 26A4h
jnz short loc_1EE9
mov word_2866, 1
jmp short loc_1EFD
; ---------------------------------------------------------------------------
loc_1EE9:
cmp word_2864, 0
jnz short loc_1EFD
cmp [bp+stream], 2694h
jnz short loc_1EFD
mov word_2864, 1
loc_1EFD:
mov bx, [bp+stream]
cmp word ptr [bx], 0
jz short loc_1F14
mov ax, 1
push ax ; whence
xor ax, ax
push ax
push ax ; offset
push bx ; stream
call _fseek
add sp, 8
loc_1F14:
mov bx, [bp+stream]
test byte ptr [bx+2], 4
jz short loc_1F24
push word ptr [bx+8] ; block
call _free
pop cx
loc_1F24:
mov bx, [bp+stream]
and word ptr [bx+2], 0FFF3h
mov word ptr [bx+6], 0
mov ax, [bp+stream]
add ax, 5
mov [bx+8], ax
mov [bx+0Ah], ax
cmp [bp+_type], 2
jz short loc_1F8C
cmp [bp+_size], 0
jbe short loc_1F8C
mov _exitbuf, 2128h
cmp [bp+buf], 0
jnz short loc_1F70
push [bp+_size] ; size
call _malloc
pop cx
mov [bp+buf], ax
or ax, ax
jz short loc_1F6B
mov bx, [bp+stream]
or word ptr [bx+2], 4
jmp short loc_1F70
; ---------------------------------------------------------------------------
loc_1F6B:
mov ax, 0FFFFh
jmp short loc_1F8E
; ---------------------------------------------------------------------------
loc_1F70:
mov bx, [bp+stream]
mov ax, [bp+buf]
mov [bx+0Ah], ax
mov [bx+8], ax
mov ax, [bp+_size]
mov [bx+6], ax
cmp [bp+_type], 1
jnz short loc_1F8C
or word ptr [bx+2], 8
loc_1F8C:
xor ax, ax
loc_1F8E:
pop di
pop si
pop bp
retn
_setvbuf endp
include libs/BorlandC/setvbuf.asm
include libs/BorlandC/_strlen.asm
include libs/BorlandC/write.asm
include libs/BorlandC/writea.asm
@ -1123,8 +999,7 @@ include libs/BorlandC/__IOERROR[data].asm
db 0
__stklen dw 1000h
include libs/BorlandC/nearheap[data].asm
word_2864 dw 0
word_2866 dw 0
include libs/BorlandC/setvbuf[data].asm
include libs/BorlandC/sysnerr[data].asm
InitStart label byte

View File

@ -4028,147 +4028,7 @@ loc_6993:
retf
sub_6857 endp
; =============== S U B R O U T I N E =======================================
; Attributes: library function bp-based frame
; int __cdecl setvbuf(FILE *stream, char *buf, int type, size_t size)
_setvbuf proc far
stream = dword ptr 6
buf = dword ptr 0Ah
_type = word ptr 0Eh
_size = word ptr 10h
push bp
mov bp, sp
push si
push di
les bx, [bp+stream]
mov ax, es:[bx+12h]
cmp ax, word ptr [bp+stream]
jz short loc_69AD
jmp loc_6A84
; ---------------------------------------------------------------------------
loc_69AD:
cmp [bp+_type], 2
jle short loc_69B6
jmp loc_6A84
; ---------------------------------------------------------------------------
loc_69B6:
cmp [bp+_size], 7FFFh
jbe short loc_69C0
jmp loc_6A84
; ---------------------------------------------------------------------------
loc_69C0:
cmp word_1F39A, 0
jnz short loc_69D6
cmp word ptr [bp+stream], 14A4h
jnz short loc_69D6
mov word_1F39A, 1
jmp short loc_69EA
; ---------------------------------------------------------------------------
loc_69D6:
cmp word_1F398, 0
jnz short loc_69EA
cmp word ptr [bp+stream], 1490h
jnz short loc_69EA
mov word_1F398, 1
loc_69EA:
les bx, [bp+stream]
cmp word ptr es:[bx], 0
jz short loc_6A07
mov ax, 1
push ax ; whence
xor ax, ax
push ax
push ax ; offset
push word ptr [bp+stream+2]
push bx ; stream
nopcall _fseek
add sp, 0Ah
loc_6A07:
les bx, [bp+stream]
test byte ptr es:[bx+2], 4
jz short loc_6A20
push word ptr es:[bx+0Ah]
push word ptr es:[bx+8]
nop
push cs
call near ptr _farfree
pop cx
pop cx
loc_6A20:
les bx, [bp+stream]
and word ptr es:[bx+2], 0FFF3h
mov word ptr es:[bx+6], 0
mov dx, word ptr [bp+stream+2]
mov ax, word ptr [bp+stream]
add ax, 5
mov es:[bx+0Ah], dx
mov es:[bx+8], ax
mov es:[bx+0Eh], dx
mov es:[bx+0Ch], ax
cmp [bp+_type], 2
jz short loc_6AB4
cmp [bp+_size], 0
jbe short loc_6AB4
mov word ptr _exitbuf+2, seg seg000
mov word ptr _exitbuf, 6DC2h
mov ax, word ptr [bp+buf]
or ax, word ptr [bp+buf+2]
jnz short loc_6A89
push [bp+_size]
nop
push cs
call near ptr _malloc
pop cx
mov word ptr [bp+buf+2], dx
mov word ptr [bp+buf], ax
or ax, dx
jz short loc_6A84
les bx, [bp+stream]
or word ptr es:[bx+2], 4
jmp short loc_6A89
; ---------------------------------------------------------------------------
loc_6A84:
mov ax, 0FFFFh
jmp short loc_6AB6
; ---------------------------------------------------------------------------
loc_6A89:
les bx, [bp+stream]
mov dx, word ptr [bp+buf+2]
mov ax, word ptr [bp+buf]
mov es:[bx+0Eh], dx
mov es:[bx+0Ch], ax
mov es:[bx+0Ah], dx
mov es:[bx+8], ax
mov ax, [bp+_size]
mov es:[bx+6], ax
cmp [bp+_type], 1
jnz short loc_6AB4
or word ptr es:[bx+2], 8
loc_6AB4:
xor ax, ax
loc_6AB6:
pop di
pop si
pop bp
retf
_setvbuf endp
include libs/BorlandC/setvbuf.asm
include libs/BorlandC/_strcat.asm
include libs/BorlandC/_strcmp.asm
include libs/BorlandC/_strcpy.asm
@ -42297,10 +42157,7 @@ dword_1F384 dd 0
db 0
db 5Ch ; \
db 0
word_1F398 dw 0
; _setvbuf+4Bw
word_1F39A dw 0
; _setvbuf+35w
include libs/BorlandC/setvbuf[data].asm
include libs/BorlandC/sysnerr[data].asm
include libs/BorlandC/xx[data].asm
include libs/BorlandC/setenvp[data].asm

View File

@ -2085,147 +2085,7 @@ loc_4D93:
retf
sub_4C57 endp
; =============== S U B R O U T I N E =======================================
; Attributes: library function bp-based frame
; int __cdecl setvbuf(FILE *stream, char *buf, int type, size_t size)
_setvbuf proc far
stream = dword ptr 6
buf = dword ptr 0Ah
_type = word ptr 0Eh
_size = word ptr 10h
push bp
mov bp, sp
push si
push di
les bx, [bp+stream]
mov ax, es:[bx+12h]
cmp ax, word ptr [bp+stream]
jz short loc_4DAD
jmp loc_4E84
; ---------------------------------------------------------------------------
loc_4DAD:
cmp [bp+_type], 2
jle short loc_4DB6
jmp loc_4E84
; ---------------------------------------------------------------------------
loc_4DB6:
cmp [bp+_size], 7FFFh
jbe short loc_4DC0
jmp loc_4E84
; ---------------------------------------------------------------------------
loc_4DC0:
cmp word_DC64, 0
jnz short loc_4DD6
cmp word ptr [bp+stream], 85Eh
jnz short loc_4DD6
mov word_DC64, 1
jmp short loc_4DEA
; ---------------------------------------------------------------------------
loc_4DD6:
cmp word_DC62, 0
jnz short loc_4DEA
cmp word ptr [bp+stream], 84Ah
jnz short loc_4DEA
mov word_DC62, 1
loc_4DEA:
les bx, [bp+stream]
cmp word ptr es:[bx], 0
jz short loc_4E07
mov ax, 1
push ax ; whence
xor ax, ax
push ax
push ax ; offset
push word ptr [bp+stream+2]
push bx ; stream
nopcall _fseek
add sp, 0Ah
loc_4E07:
les bx, [bp+stream]
test byte ptr es:[bx+2], 4
jz short loc_4E20
push word ptr es:[bx+0Ah]
push word ptr es:[bx+8]
nop
push cs
call near ptr _farfree
pop cx
pop cx
loc_4E20:
les bx, [bp+stream]
and word ptr es:[bx+2], 0FFF3h
mov word ptr es:[bx+6], 0
mov dx, word ptr [bp+stream+2]
mov ax, word ptr [bp+stream]
add ax, 5
mov es:[bx+0Ah], dx
mov es:[bx+8], ax
mov es:[bx+0Eh], dx
mov es:[bx+0Ch], ax
cmp [bp+_type], 2
jz short loc_4EB4
cmp [bp+_size], 0
jbe short loc_4EB4
mov word ptr _exitbuf+2, seg seg000
mov word ptr _exitbuf, 51C2h
mov ax, word ptr [bp+buf]
or ax, word ptr [bp+buf+2]
jnz short loc_4E89
push [bp+_size]
nop
push cs
call near ptr _malloc
pop cx
mov word ptr [bp+buf+2], dx
mov word ptr [bp+buf], ax
or ax, dx
jz short loc_4E84
les bx, [bp+stream]
or word ptr es:[bx+2], 4
jmp short loc_4E89
; ---------------------------------------------------------------------------
loc_4E84:
mov ax, 0FFFFh
jmp short loc_4EB6
; ---------------------------------------------------------------------------
loc_4E89:
les bx, [bp+stream]
mov dx, word ptr [bp+buf+2]
mov ax, word ptr [bp+buf]
mov es:[bx+0Eh], dx
mov es:[bx+0Ch], ax
mov es:[bx+0Ah], dx
mov es:[bx+8], ax
mov ax, [bp+_size]
mov es:[bx+6], ax
cmp [bp+_type], 1
jnz short loc_4EB4
or word ptr es:[bx+2], 8
loc_4EB4:
xor ax, ax
loc_4EB6:
pop di
pop si
pop bp
retf
_setvbuf endp
include libs/BorlandC/setvbuf.asm
include libs/BorlandC/_strcat.asm
include libs/BorlandC/_strcmp.asm
include libs/BorlandC/_strcpy.asm
@ -8868,10 +8728,7 @@ dword_DC4E dd 0
dw 0
db 5Ch ; \
db 0
word_DC62 dw 0
; _setvbuf+4Bw
word_DC64 dw 0
; _setvbuf+35w
include libs/BorlandC/setvbuf[data].asm
include libs/BorlandC/sysnerr[data].asm
include libs/BorlandC/xx[data].asm
include libs/BorlandC/setenvp[data].asm

View File

@ -1688,147 +1688,7 @@ loc_53E0:
retf
sub_52A4 endp
; =============== S U B R O U T I N E =======================================
; Attributes: library function bp-based frame
; int __cdecl setvbuf(FILE *stream, char *buf, int type, size_t size)
_setvbuf proc far
stream = dword ptr 6
buf = dword ptr 0Ah
_type = word ptr 0Eh
_size = word ptr 10h
push bp
mov bp, sp
push si
push di
les bx, [bp+stream]
mov ax, es:[bx+12h]
cmp ax, word ptr [bp+stream]
jz short loc_53FA
jmp loc_54D1
; ---------------------------------------------------------------------------
loc_53FA:
cmp [bp+_type], 2
jle short loc_5403
jmp loc_54D1
; ---------------------------------------------------------------------------
loc_5403:
cmp [bp+_size], 7FFFh
jbe short loc_540D
jmp loc_54D1
; ---------------------------------------------------------------------------
loc_540D:
cmp word_E72A, 0
jnz short loc_5423
cmp word ptr [bp+stream], 0C74h
jnz short loc_5423
mov word_E72A, 1
jmp short loc_5437
; ---------------------------------------------------------------------------
loc_5423:
cmp word_E728, 0
jnz short loc_5437
cmp word ptr [bp+stream], 0C60h
jnz short loc_5437
mov word_E728, 1
loc_5437:
les bx, [bp+stream]
cmp word ptr es:[bx], 0
jz short loc_5454
mov ax, 1
push ax ; whence
xor ax, ax
push ax
push ax ; offset
push word ptr [bp+stream+2]
push bx ; stream
nopcall _fseek
add sp, 0Ah
loc_5454:
les bx, [bp+stream]
test byte ptr es:[bx+2], 4
jz short loc_546D
push word ptr es:[bx+0Ah]
push word ptr es:[bx+8]
nop
push cs
call near ptr _farfree
pop cx
pop cx
loc_546D:
les bx, [bp+stream]
and word ptr es:[bx+2], 0FFF3h
mov word ptr es:[bx+6], 0
mov dx, word ptr [bp+stream+2]
mov ax, word ptr [bp+stream]
add ax, 5
mov es:[bx+0Ah], dx
mov es:[bx+8], ax
mov es:[bx+0Eh], dx
mov es:[bx+0Ch], ax
cmp [bp+_type], 2
jz short loc_5501
cmp [bp+_size], 0
jbe short loc_5501
mov word ptr _exitbuf+2, seg seg000
mov word ptr _exitbuf, 580Fh
mov ax, word ptr [bp+buf]
or ax, word ptr [bp+buf+2]
jnz short loc_54D6
push [bp+_size]
nop
push cs
call near ptr _malloc
pop cx
mov word ptr [bp+buf+2], dx
mov word ptr [bp+buf], ax
or ax, dx
jz short loc_54D1
les bx, [bp+stream]
or word ptr es:[bx+2], 4
jmp short loc_54D6
; ---------------------------------------------------------------------------
loc_54D1:
mov ax, 0FFFFh
jmp short loc_5503
; ---------------------------------------------------------------------------
loc_54D6:
les bx, [bp+stream]
mov dx, word ptr [bp+buf+2]
mov ax, word ptr [bp+buf]
mov es:[bx+0Eh], dx
mov es:[bx+0Ch], ax
mov es:[bx+0Ah], dx
mov es:[bx+8], ax
mov ax, [bp+_size]
mov es:[bx+6], ax
cmp [bp+_type], 1
jnz short loc_5501
or word ptr es:[bx+2], 8
loc_5501:
xor ax, ax
loc_5503:
pop di
pop si
pop bp
retf
_setvbuf endp
include libs/BorlandC/setvbuf.asm
include libs/BorlandC/_strcat.asm
include libs/BorlandC/_strcmp.asm
include libs/BorlandC/_strcpy.asm
@ -9125,10 +8985,7 @@ dword_E714 dd 0
db 0
db 5Ch ; \
db 0
word_E728 dw 0
; _setvbuf+4Bw
word_E72A dw 0
; _setvbuf+35w
include libs/BorlandC/setvbuf[data].asm
include libs/BorlandC/sysnerr[data].asm
include libs/BorlandC/xx[data].asm
include libs/BorlandC/setenvp[data].asm

View File

@ -1713,147 +1713,7 @@ loc_4F15:
retf
sub_4DD9 endp
; =============== S U B R O U T I N E =======================================
; Attributes: library function bp-based frame
; int __cdecl setvbuf(FILE *stream, char *buf, int type, size_t size)
_setvbuf proc far
stream = dword ptr 6
buf = dword ptr 0Ah
_type = word ptr 0Eh
_size = word ptr 10h
push bp
mov bp, sp
push si
push di
les bx, [bp+stream]
mov ax, es:[bx+12h]
cmp ax, word ptr [bp+stream]
jz short loc_4F2F
jmp loc_5006
; ---------------------------------------------------------------------------
loc_4F2F:
cmp [bp+_type], 2
jle short loc_4F38
jmp loc_5006
; ---------------------------------------------------------------------------
loc_4F38:
cmp [bp+_size], 7FFFh
jbe short loc_4F42
jmp loc_5006
; ---------------------------------------------------------------------------
loc_4F42:
cmp word_1E616, 0
jnz short loc_4F58
cmp word ptr [bp+stream], 0C30h
jnz short loc_4F58
mov word_1E616, 1
jmp short loc_4F6C
; ---------------------------------------------------------------------------
loc_4F58:
cmp word_1E614, 0
jnz short loc_4F6C
cmp word ptr [bp+stream], 0C1Ch
jnz short loc_4F6C
mov word_1E614, 1
loc_4F6C:
les bx, [bp+stream]
cmp word ptr es:[bx], 0
jz short loc_4F89
mov ax, 1
push ax ; whence
xor ax, ax
push ax
push ax ; offset
push word ptr [bp+stream+2]
push bx ; stream
nopcall _fseek
add sp, 0Ah
loc_4F89:
les bx, [bp+stream]
test byte ptr es:[bx+2], 4
jz short loc_4FA2
push word ptr es:[bx+0Ah]
push word ptr es:[bx+8]
nop
push cs
call near ptr _farfree
pop cx
pop cx
loc_4FA2:
les bx, [bp+stream]
and word ptr es:[bx+2], 0FFF3h
mov word ptr es:[bx+6], 0
mov dx, word ptr [bp+stream+2]
mov ax, word ptr [bp+stream]
add ax, 5
mov es:[bx+0Ah], dx
mov es:[bx+8], ax
mov es:[bx+0Eh], dx
mov es:[bx+0Ch], ax
cmp [bp+_type], 2
jz short loc_5036
cmp [bp+_size], 0
jbe short loc_5036
mov word ptr _exitbuf+2, seg seg000
mov word ptr _exitbuf, 5344h
mov ax, word ptr [bp+buf]
or ax, word ptr [bp+buf+2]
jnz short loc_500B
push [bp+_size]
nop
push cs
call near ptr _malloc
pop cx
mov word ptr [bp+buf+2], dx
mov word ptr [bp+buf], ax
or ax, dx
jz short loc_5006
les bx, [bp+stream]
or word ptr es:[bx+2], 4
jmp short loc_500B
; ---------------------------------------------------------------------------
loc_5006:
mov ax, 0FFFFh
jmp short loc_5038
; ---------------------------------------------------------------------------
loc_500B:
les bx, [bp+stream]
mov dx, word ptr [bp+buf+2]
mov ax, word ptr [bp+buf]
mov es:[bx+0Eh], dx
mov es:[bx+0Ch], ax
mov es:[bx+0Ah], dx
mov es:[bx+8], ax
mov ax, [bp+_size]
mov es:[bx+6], ax
cmp [bp+_type], 1
jnz short loc_5036
or word ptr es:[bx+2], 8
loc_5036:
xor ax, ax
loc_5038:
pop di
pop si
pop bp
retf
_setvbuf endp
include libs/BorlandC/setvbuf.asm
include libs/BorlandC/_strcat.asm
include libs/BorlandC/_strcmp.asm
include libs/BorlandC/_strcpy.asm
@ -42118,10 +41978,7 @@ dword_1E600 dd 0
db 0
db 5Ch ; \
db 0
word_1E614 dw 0
; _setvbuf+4Bw
word_1E616 dw 0
; _setvbuf+35w
include libs/BorlandC/setvbuf[data].asm
include libs/BorlandC/sysnerr[data].asm
include libs/BorlandC/xx[data].asm
include libs/BorlandC/setenvp[data].asm

View File

@ -1918,147 +1918,7 @@ loc_4DE3:
retf
sub_4CA7 endp
; =============== S U B R O U T I N E =======================================
; Attributes: library function bp-based frame
; int __cdecl setvbuf(FILE *stream, char *buf, int type, size_t size)
_setvbuf proc far
stream = dword ptr 6
buf = dword ptr 0Ah
_type = word ptr 0Eh
_size = word ptr 10h
push bp
mov bp, sp
push si
push di
les bx, [bp+stream]
mov ax, es:[bx+12h]
cmp ax, word ptr [bp+stream]
jz short loc_4DFD
jmp loc_4ED4
; ---------------------------------------------------------------------------
loc_4DFD:
cmp [bp+_type], 2
jle short loc_4E06
jmp loc_4ED4
; ---------------------------------------------------------------------------
loc_4E06:
cmp [bp+_size], 7FFFh
jbe short loc_4E10
jmp loc_4ED4
; ---------------------------------------------------------------------------
loc_4E10:
cmp word_F55E, 0
jnz short loc_4E26
cmp word ptr [bp+stream], 0CE8h
jnz short loc_4E26
mov word_F55E, 1
jmp short loc_4E3A
; ---------------------------------------------------------------------------
loc_4E26:
cmp word_F55C, 0
jnz short loc_4E3A
cmp word ptr [bp+stream], 0CD4h
jnz short loc_4E3A
mov word_F55C, 1
loc_4E3A:
les bx, [bp+stream]
cmp word ptr es:[bx], 0
jz short loc_4E57
mov ax, 1
push ax ; whence
xor ax, ax
push ax
push ax ; offset
push word ptr [bp+stream+2]
push bx ; stream
nopcall _fseek
add sp, 0Ah
loc_4E57:
les bx, [bp+stream]
test byte ptr es:[bx+2], 4
jz short loc_4E70
push word ptr es:[bx+0Ah]
push word ptr es:[bx+8]
nop
push cs
call near ptr _farfree
pop cx
pop cx
loc_4E70:
les bx, [bp+stream]
and word ptr es:[bx+2], 0FFF3h
mov word ptr es:[bx+6], 0
mov dx, word ptr [bp+stream+2]
mov ax, word ptr [bp+stream]
add ax, 5
mov es:[bx+0Ah], dx
mov es:[bx+8], ax
mov es:[bx+0Eh], dx
mov es:[bx+0Ch], ax
cmp [bp+_type], 2
jz short loc_4F04
cmp [bp+_size], 0
jbe short loc_4F04
mov word ptr _exitbuf+2, seg seg000
mov word ptr _exitbuf, 5212h
mov ax, word ptr [bp+buf]
or ax, word ptr [bp+buf+2]
jnz short loc_4ED9
push [bp+_size]
nop
push cs
call near ptr _malloc
pop cx
mov word ptr [bp+buf+2], dx
mov word ptr [bp+buf], ax
or ax, dx
jz short loc_4ED4
les bx, [bp+stream]
or word ptr es:[bx+2], 4
jmp short loc_4ED9
; ---------------------------------------------------------------------------
loc_4ED4:
mov ax, 0FFFFh
jmp short loc_4F06
; ---------------------------------------------------------------------------
loc_4ED9:
les bx, [bp+stream]
mov dx, word ptr [bp+buf+2]
mov ax, word ptr [bp+buf]
mov es:[bx+0Eh], dx
mov es:[bx+0Ch], ax
mov es:[bx+0Ah], dx
mov es:[bx+8], ax
mov ax, [bp+_size]
mov es:[bx+6], ax
cmp [bp+_type], 1
jnz short loc_4F04
or word ptr es:[bx+2], 8
loc_4F04:
xor ax, ax
loc_4F06:
pop di
pop si
pop bp
retf
_setvbuf endp
include libs/BorlandC/setvbuf.asm
include libs/BorlandC/_strcat.asm
include libs/BorlandC/_strcmp.asm
include libs/BorlandC/_strcpy.asm
@ -11689,10 +11549,7 @@ dword_F548 dd 0
db 0
db 5Ch ; \
db 0
word_F55C dw 0
; _setvbuf+4Bw
word_F55E dw 0
; _setvbuf+35w
include libs/BorlandC/setvbuf[data].asm
include libs/BorlandC/sysnerr[data].asm
include libs/BorlandC/xx[data].asm
include libs/BorlandC/setenvp[data].asm

View File

@ -2027,147 +2027,7 @@ loc_50C5:
retf
sub_4F89 endp
; =============== S U B R O U T I N E =======================================
; Attributes: library function bp-based frame
; int __cdecl setvbuf(FILE *stream, char *buf, int type, size_t size)
_setvbuf proc far
stream = dword ptr 6
buf = dword ptr 0Ah
_type = word ptr 0Eh
_size = word ptr 10h
push bp
mov bp, sp
push si
push di
les bx, [bp+stream]
mov ax, es:[bx+12h]
cmp ax, word ptr [bp+stream]
jz short loc_50DF
jmp loc_51B6
; ---------------------------------------------------------------------------
loc_50DF:
cmp [bp+_type], 2
jle short loc_50E8
jmp loc_51B6
; ---------------------------------------------------------------------------
loc_50E8:
cmp [bp+_size], 7FFFh
jbe short loc_50F2
jmp loc_51B6
; ---------------------------------------------------------------------------
loc_50F2:
cmp word_E7AA, 0
jnz short loc_5108
cmp word ptr [bp+stream], 0B34h
jnz short loc_5108
mov word_E7AA, 1
jmp short loc_511C
; ---------------------------------------------------------------------------
loc_5108:
cmp word_E7A8, 0
jnz short loc_511C
cmp word ptr [bp+stream], 0B20h
jnz short loc_511C
mov word_E7A8, 1
loc_511C:
les bx, [bp+stream]
cmp word ptr es:[bx], 0
jz short loc_5139
mov ax, 1
push ax ; whence
xor ax, ax
push ax
push ax ; offset
push word ptr [bp+stream+2]
push bx ; stream
nopcall _fseek
add sp, 0Ah
loc_5139:
les bx, [bp+stream]
test byte ptr es:[bx+2], 4
jz short loc_5152
push word ptr es:[bx+0Ah]
push word ptr es:[bx+8]
nop
push cs
call near ptr _farfree
pop cx
pop cx
loc_5152:
les bx, [bp+stream]
and word ptr es:[bx+2], 0FFF3h
mov word ptr es:[bx+6], 0
mov dx, word ptr [bp+stream+2]
mov ax, word ptr [bp+stream]
add ax, 5
mov es:[bx+0Ah], dx
mov es:[bx+8], ax
mov es:[bx+0Eh], dx
mov es:[bx+0Ch], ax
cmp [bp+_type], 2
jz short loc_51E6
cmp [bp+_size], 0
jbe short loc_51E6
mov word ptr _exitbuf+2, seg seg000
mov word ptr _exitbuf, 54F4h
mov ax, word ptr [bp+buf]
or ax, word ptr [bp+buf+2]
jnz short loc_51BB
push [bp+_size]
nop
push cs
call near ptr _malloc
pop cx
mov word ptr [bp+buf+2], dx
mov word ptr [bp+buf], ax
or ax, dx
jz short loc_51B6
les bx, [bp+stream]
or word ptr es:[bx+2], 4
jmp short loc_51BB
; ---------------------------------------------------------------------------
loc_51B6:
mov ax, 0FFFFh
jmp short loc_51E8
; ---------------------------------------------------------------------------
loc_51BB:
les bx, [bp+stream]
mov dx, word ptr [bp+buf+2]
mov ax, word ptr [bp+buf]
mov es:[bx+0Eh], dx
mov es:[bx+0Ch], ax
mov es:[bx+0Ah], dx
mov es:[bx+8], ax
mov ax, [bp+_size]
mov es:[bx+6], ax
cmp [bp+_type], 1
jnz short loc_51E6
or word ptr es:[bx+2], 8
loc_51E6:
xor ax, ax
loc_51E8:
pop di
pop si
pop bp
retf
_setvbuf endp
include libs/BorlandC/setvbuf.asm
include libs/BorlandC/_strcat.asm
include libs/BorlandC/_strcmp.asm
include libs/BorlandC/_strcpy.asm
@ -9815,10 +9675,7 @@ dword_E794 dd 0
db 0
db 5Ch ; \
db 0
word_E7A8 dw 0
; _setvbuf+4Bw
word_E7AA dw 0
; _setvbuf+35w
include libs/BorlandC/setvbuf[data].asm
include libs/BorlandC/sysnerr[data].asm
include libs/BorlandC/xx[data].asm
include libs/BorlandC/setenvp[data].asm

View File

@ -2302,148 +2302,7 @@ loc_6321:
retf
sub_61E5 endp
; =============== S U B R O U T I N E =======================================
; Attributes: library function bp-based frame
; int __cdecl setvbuf(FILE *stream, char *buf, int type, size_t size)
_setvbuf proc far
stream = dword ptr 6
buf = word ptr 0Ah
arg_6 = word ptr 0Ch
_type = word ptr 0Eh
_size = word ptr 10h
push bp
mov bp, sp
push si
push di
les bx, [bp+stream]
mov ax, es:[bx+12h]
cmp ax, word ptr [bp+stream]
jz short loc_633B
jmp loc_6412
; ---------------------------------------------------------------------------
loc_633B:
cmp [bp+_type], 2
jle short loc_6344
jmp loc_6412
; ---------------------------------------------------------------------------
loc_6344:
cmp [bp+_size], 7FFFh
jbe short loc_634E
jmp loc_6412
; ---------------------------------------------------------------------------
loc_634E:
cmp word_23CC2, 0
jnz short loc_6364
cmp word ptr [bp+stream], 24FCh
jnz short loc_6364
mov word_23CC2, 1
jmp short loc_6378
; ---------------------------------------------------------------------------
loc_6364:
cmp word_23CC0, 0
jnz short loc_6378
cmp word ptr [bp+stream], 24E8h
jnz short loc_6378
mov word_23CC0, 1
loc_6378:
les bx, [bp+stream]
cmp word ptr es:[bx], 0
jz short loc_6395
mov ax, 1
push ax ; whence
xor ax, ax
push ax
push ax ; offset
push word ptr [bp+stream+2]
push bx ; stream
nopcall _fseek
add sp, 0Ah
loc_6395:
les bx, [bp+stream]
test byte ptr es:[bx+2], 4
jz short loc_63AE
push word ptr es:[bx+0Ah]
push word ptr es:[bx+8]
nop
push cs
call near ptr _farfree
pop cx
pop cx
loc_63AE:
les bx, [bp+stream]
and word ptr es:[bx+2], 0FFF3h
mov word ptr es:[bx+6], 0
mov dx, word ptr [bp+stream+2]
mov ax, word ptr [bp+stream]
add ax, 5
mov es:[bx+0Ah], dx
mov es:[bx+8], ax
mov es:[bx+0Eh], dx
mov es:[bx+0Ch], ax
cmp [bp+_type], 2
jz short loc_6442
cmp [bp+_size], 0
jbe short loc_6442
mov word ptr _exitbuf+2, seg seg000
mov word ptr _exitbuf, 6750h
mov ax, [bp+buf]
or ax, [bp+arg_6]
jnz short loc_6417
push [bp+_size]
nop
push cs
call near ptr _malloc
pop cx
mov [bp+arg_6], dx
mov [bp+buf], ax
or ax, dx
jz short loc_6412
les bx, [bp+stream]
or word ptr es:[bx+2], 4
jmp short loc_6417
; ---------------------------------------------------------------------------
loc_6412:
mov ax, 0FFFFh
jmp short loc_6444
; ---------------------------------------------------------------------------
loc_6417:
les bx, [bp+stream]
mov dx, [bp+arg_6]
mov ax, [bp+buf]
mov es:[bx+0Eh], dx
mov es:[bx+0Ch], ax
mov es:[bx+0Ah], dx
mov es:[bx+8], ax
mov ax, [bp+_size]
mov es:[bx+6], ax
cmp [bp+_type], 1
jnz short loc_6442
or word ptr es:[bx+2], 8
loc_6442:
xor ax, ax
loc_6444:
pop di
pop si
pop bp
retf
_setvbuf endp
include libs/BorlandC/setvbuf.asm
include libs/BorlandC/_strcat.asm
include libs/BorlandC/_strcmp.asm
include libs/BorlandC/_strcpy.asm
@ -26035,10 +25894,7 @@ dword_23CAC dd 0
db 0
db 5Ch ; \
db 0
word_23CC0 dw 0
; _setvbuf+4Bw
word_23CC2 dw 0
; _setvbuf+35w
include libs/BorlandC/setvbuf[data].asm
include libs/BorlandC/sysnerr[data].asm
include libs/BorlandC/xx[data].asm
include libs/BorlandC/setenvp[data].asm

View File

@ -1966,147 +1966,7 @@ loc_5889:
retf
sub_574D endp
; =============== S U B R O U T I N E =======================================
; Attributes: library function bp-based frame
; int __cdecl setvbuf(FILE *stream, char *buf, int type, size_t size)
_setvbuf proc far
stream = dword ptr 6
buf = dword ptr 0Ah
_type = word ptr 0Eh
_size = word ptr 10h
push bp
mov bp, sp
push si
push di
les bx, [bp+stream]
mov ax, es:[bx+12h]
cmp ax, word ptr [bp+stream]
jz short loc_58A3
jmp loc_597A
; ---------------------------------------------------------------------------
loc_58A3:
cmp [bp+_type], 2
jle short loc_58AC
jmp loc_597A
; ---------------------------------------------------------------------------
loc_58AC:
cmp [bp+_size], 7FFFh
jbe short loc_58B6
jmp loc_597A
; ---------------------------------------------------------------------------
loc_58B6:
cmp word_F302, 0
jnz short loc_58CC
cmp word ptr [bp+stream], 94Ch
jnz short loc_58CC
mov word_F302, 1
jmp short loc_58E0
; ---------------------------------------------------------------------------
loc_58CC:
cmp word_F300, 0
jnz short loc_58E0
cmp word ptr [bp+stream], 938h
jnz short loc_58E0
mov word_F300, 1
loc_58E0:
les bx, [bp+stream]
cmp word ptr es:[bx], 0
jz short loc_58FD
mov ax, 1
push ax ; whence
xor ax, ax
push ax
push ax ; offset
push word ptr [bp+stream+2]
push bx ; stream
nopcall _fseek
add sp, 0Ah
loc_58FD:
les bx, [bp+stream]
test byte ptr es:[bx+2], 4
jz short loc_5916
push word ptr es:[bx+0Ah]
push word ptr es:[bx+8]
nop
push cs
call near ptr _farfree
pop cx
pop cx
loc_5916:
les bx, [bp+stream]
and word ptr es:[bx+2], 0FFF3h
mov word ptr es:[bx+6], 0
mov dx, word ptr [bp+stream+2]
mov ax, word ptr [bp+stream]
add ax, 5
mov es:[bx+0Ah], dx
mov es:[bx+8], ax
mov es:[bx+0Eh], dx
mov es:[bx+0Ch], ax
cmp [bp+_type], 2
jz short loc_59AA
cmp [bp+_size], 0
jbe short loc_59AA
mov word ptr _exitbuf+2, seg seg000
mov word ptr _exitbuf, 5CB8h
mov ax, word ptr [bp+buf]
or ax, word ptr [bp+buf+2]
jnz short loc_597F
push [bp+_size]
nop
push cs
call near ptr _malloc
pop cx
mov word ptr [bp+buf+2], dx
mov word ptr [bp+buf], ax
or ax, dx
jz short loc_597A
les bx, [bp+stream]
or word ptr es:[bx+2], 4
jmp short loc_597F
; ---------------------------------------------------------------------------
loc_597A:
mov ax, 0FFFFh
jmp short loc_59AC
; ---------------------------------------------------------------------------
loc_597F:
les bx, [bp+stream]
mov dx, word ptr [bp+buf+2]
mov ax, word ptr [bp+buf]
mov es:[bx+0Eh], dx
mov es:[bx+0Ch], ax
mov es:[bx+0Ah], dx
mov es:[bx+8], ax
mov ax, [bp+_size]
mov es:[bx+6], ax
cmp [bp+_type], 1
jnz short loc_59AA
or word ptr es:[bx+2], 8
loc_59AA:
xor ax, ax
loc_59AC:
pop di
pop si
pop bp
retf
_setvbuf endp
include libs/BorlandC/setvbuf.asm
include libs/BorlandC/_strcat.asm
include libs/BorlandC/_strcmp.asm
include libs/BorlandC/_strcpy.asm
@ -10326,10 +10186,7 @@ dword_F2EC dd 0
db 0
db 5Ch ; \
db 0
word_F300 dw 0
; _setvbuf+4Bw
word_F302 dw 0
; _setvbuf+35w
include libs/BorlandC/setvbuf[data].asm
include libs/BorlandC/sysnerr[data].asm
include libs/BorlandC/xx[data].asm
include libs/BorlandC/setenvp[data].asm

View File

@ -1898,147 +1898,7 @@ loc_5F49:
retf
sub_5E0D endp
; =============== S U B R O U T I N E =======================================
; Attributes: library function bp-based frame
; int __cdecl setvbuf(FILE *stream, char *buf, int type, size_t size)
_setvbuf proc far
stream = dword ptr 6
buf = dword ptr 0Ah
_type = word ptr 0Eh
_size = word ptr 10h
push bp
mov bp, sp
push si
push di
les bx, [bp+stream]
mov ax, es:[bx+12h]
cmp ax, word ptr [bp+stream]
jz short loc_5F63
jmp loc_603A
; ---------------------------------------------------------------------------
loc_5F63:
cmp [bp+_type], 2
jle short loc_5F6C
jmp loc_603A
; ---------------------------------------------------------------------------
loc_5F6C:
cmp [bp+_size], 7FFFh
jbe short loc_5F76
jmp loc_603A
; ---------------------------------------------------------------------------
loc_5F76:
cmp word_10CD6, 0
jnz short loc_5F8C
cmp word ptr [bp+stream], 1510h
jnz short loc_5F8C
mov word_10CD6, 1
jmp short loc_5FA0
; ---------------------------------------------------------------------------
loc_5F8C:
cmp word_10CD4, 0
jnz short loc_5FA0
cmp word ptr [bp+stream], 14FCh
jnz short loc_5FA0
mov word_10CD4, 1
loc_5FA0:
les bx, [bp+stream]
cmp word ptr es:[bx], 0
jz short loc_5FBD
mov ax, 1
push ax ; whence
xor ax, ax
push ax
push ax ; offset
push word ptr [bp+stream+2]
push bx ; stream
nopcall _fseek
add sp, 0Ah
loc_5FBD:
les bx, [bp+stream]
test byte ptr es:[bx+2], 4
jz short loc_5FD6
push word ptr es:[bx+0Ah]
push word ptr es:[bx+8]
nop
push cs
call near ptr _farfree
pop cx
pop cx
loc_5FD6:
les bx, [bp+stream]
and word ptr es:[bx+2], 0FFF3h
mov word ptr es:[bx+6], 0
mov dx, word ptr [bp+stream+2]
mov ax, word ptr [bp+stream]
add ax, 5
mov es:[bx+0Ah], dx
mov es:[bx+8], ax
mov es:[bx+0Eh], dx
mov es:[bx+0Ch], ax
cmp [bp+_type], 2
jz short loc_606A
cmp [bp+_size], 0
jbe short loc_606A
mov word ptr _exitbuf+2, seg seg000
mov word ptr _exitbuf, 6378h
mov ax, word ptr [bp+buf]
or ax, word ptr [bp+buf+2]
jnz short loc_603F
push [bp+_size]
nop
push cs
call near ptr _malloc
pop cx
mov word ptr [bp+buf+2], dx
mov word ptr [bp+buf], ax
or ax, dx
jz short loc_603A
les bx, [bp+stream]
or word ptr es:[bx+2], 4
jmp short loc_603F
; ---------------------------------------------------------------------------
loc_603A:
mov ax, 0FFFFh
jmp short loc_606C
; ---------------------------------------------------------------------------
loc_603F:
les bx, [bp+stream]
mov dx, word ptr [bp+buf+2]
mov ax, word ptr [bp+buf]
mov es:[bx+0Eh], dx
mov es:[bx+0Ch], ax
mov es:[bx+0Ah], dx
mov es:[bx+8], ax
mov ax, [bp+_size]
mov es:[bx+6], ax
cmp [bp+_type], 1
jnz short loc_606A
or word ptr es:[bx+2], 8
loc_606A:
xor ax, ax
loc_606C:
pop di
pop si
pop bp
retf
_setvbuf endp
include libs/BorlandC/setvbuf.asm
include libs/BorlandC/_strcat.asm
include libs/BorlandC/_strcmp.asm
include libs/BorlandC/_strcpy.asm
@ -11317,10 +11177,7 @@ dword_10CC0 dd 0
db 0
db 5Ch ; \
db 0
word_10CD4 dw 0
; _setvbuf+4Bw
word_10CD6 dw 0
; _setvbuf+35w
include libs/BorlandC/setvbuf[data].asm
include libs/BorlandC/sysnerr[data].asm
include libs/BorlandC/xx[data].asm
include libs/BorlandC/setenvp[data].asm

View File

@ -2423,147 +2423,7 @@ loc_664D:
retf
sub_6511 endp
; =============== S U B R O U T I N E =======================================
; Attributes: library function bp-based frame
; int __cdecl setvbuf(FILE *stream, char *buf, int type, size_t size)
_setvbuf proc far
stream = dword ptr 6
buf = dword ptr 0Ah
_type = word ptr 0Eh
_size = word ptr 10h
push bp
mov bp, sp
push si
push di
les bx, [bp+stream]
mov ax, es:[bx+12h]
cmp ax, word ptr [bp+stream]
jz short loc_6667
jmp loc_673E
; ---------------------------------------------------------------------------
loc_6667:
cmp [bp+_type], 2
jle short loc_6670
jmp loc_673E
; ---------------------------------------------------------------------------
loc_6670:
cmp [bp+_size], 7FFFh
jbe short loc_667A
jmp loc_673E
; ---------------------------------------------------------------------------
loc_667A:
cmp word_22F40, 0
jnz short loc_6690
cmp word ptr [bp+stream], 20DAh
jnz short loc_6690
mov word_22F40, 1
jmp short loc_66A4
; ---------------------------------------------------------------------------
loc_6690:
cmp word_22F3E, 0
jnz short loc_66A4
cmp word ptr [bp+stream], 20C6h
jnz short loc_66A4
mov word_22F3E, 1
loc_66A4:
les bx, [bp+stream]
cmp word ptr es:[bx], 0
jz short loc_66C1
mov ax, 1
push ax ; whence
xor ax, ax
push ax
push ax ; offset
push word ptr [bp+stream+2]
push bx ; stream
nopcall _fseek
add sp, 0Ah
loc_66C1:
les bx, [bp+stream]
test byte ptr es:[bx+2], 4
jz short loc_66DA
push word ptr es:[bx+0Ah]
push word ptr es:[bx+8]
nop
push cs
call near ptr _farfree
pop cx
pop cx
loc_66DA:
les bx, [bp+stream]
and word ptr es:[bx+2], 0FFF3h
mov word ptr es:[bx+6], 0
mov dx, word ptr [bp+stream+2]
mov ax, word ptr [bp+stream]
add ax, 5
mov es:[bx+0Ah], dx
mov es:[bx+8], ax
mov es:[bx+0Eh], dx
mov es:[bx+0Ch], ax
cmp [bp+_type], 2
jz short loc_676E
cmp [bp+_size], 0
jbe short loc_676E
mov word ptr _exitbuf+2, seg seg000
mov word ptr _exitbuf, 6A7Ch
mov ax, word ptr [bp+buf]
or ax, word ptr [bp+buf+2]
jnz short loc_6743
push [bp+_size]
nop
push cs
call near ptr _malloc
pop cx
mov word ptr [bp+buf+2], dx
mov word ptr [bp+buf], ax
or ax, dx
jz short loc_673E
les bx, [bp+stream]
or word ptr es:[bx+2], 4
jmp short loc_6743
; ---------------------------------------------------------------------------
loc_673E:
mov ax, 0FFFFh
jmp short loc_6770
; ---------------------------------------------------------------------------
loc_6743:
les bx, [bp+stream]
mov dx, word ptr [bp+buf+2]
mov ax, word ptr [bp+buf]
mov es:[bx+0Eh], dx
mov es:[bx+0Ch], ax
mov es:[bx+0Ah], dx
mov es:[bx+8], ax
mov ax, [bp+_size]
mov es:[bx+6], ax
cmp [bp+_type], 1
jnz short loc_676E
or word ptr es:[bx+2], 8
loc_676E:
xor ax, ax
loc_6770:
pop di
pop si
pop bp
retf
_setvbuf endp
include libs/BorlandC/setvbuf.asm
include libs/BorlandC/_strcat.asm
include libs/BorlandC/_strcmp.asm
include libs/BorlandC/_strcpy.asm
@ -26633,10 +26493,7 @@ dword_22F2A dd 0
db 0
db 5Ch ; \
db 0
word_22F3E dw 0
; _setvbuf+4Bw
word_22F40 dw 0
; _setvbuf+35w
include libs/BorlandC/setvbuf[data].asm
include libs/BorlandC/sysnerr[data].asm
include libs/BorlandC/xx[data].asm
include libs/BorlandC/setenvp[data].asm

View File

@ -2118,146 +2118,7 @@ loc_5D75:
retf
sub_5C39 endp
; =============== S U B R O U T I N E =======================================
; Attributes: library function bp-based frame
; int __cdecl setvbuf(FILE *stream, char *buf, int type, size_t size)
_setvbuf proc far
_offset = dword ptr 6
buf = dword ptr 0Ah
_type = word ptr 0Eh
_size = word ptr 10h
push bp
mov bp, sp
push si
push di
les bx, [bp+_offset]
mov ax, es:[bx+12h]
cmp ax, word ptr [bp+_offset]
jz short loc_5D8F
jmp loc_5E66
; ---------------------------------------------------------------------------
loc_5D8F:
cmp [bp+_type], 2
jle short loc_5D98
jmp loc_5E66
; ---------------------------------------------------------------------------
loc_5D98:
cmp [bp+_size], 7FFFh
jbe short loc_5DA2
jmp loc_5E66
; ---------------------------------------------------------------------------
loc_5DA2:
cmp word_11DA2, 0
jnz short loc_5DB8
cmp word ptr [bp+_offset], 181Ch
jnz short loc_5DB8
mov word_11DA2, 1
jmp short loc_5DCC
; ---------------------------------------------------------------------------
loc_5DB8:
cmp word_11DA0, 0
jnz short loc_5DCC
cmp word ptr [bp+_offset], 1808h
jnz short loc_5DCC
mov word_11DA0, 1
loc_5DCC:
les bx, [bp+_offset]
cmp word ptr es:[bx], 0
jz short loc_5DE9
mov ax, 1
push ax
xor ax, ax
push ax ; whence
push ax
push word ptr [bp+_offset+2] ; offset
push bx
nopcall _fseek
add sp, 0Ah
loc_5DE9:
les bx, [bp+_offset]
test byte ptr es:[bx+2], 4
jz short loc_5E02
push word ptr es:[bx+0Ah]
push word ptr es:[bx+8]
nop
push cs
call near ptr _farfree
pop cx
pop cx
loc_5E02:
les bx, [bp+_offset]
and word ptr es:[bx+2], 0FFF3h
mov word ptr es:[bx+6], 0
mov dx, word ptr [bp+_offset+2]
mov ax, word ptr [bp+_offset]
add ax, 5
mov es:[bx+0Ah], dx
mov es:[bx+8], ax
mov es:[bx+0Eh], dx
mov es:[bx+0Ch], ax
cmp [bp+_type], 2
jz short loc_5E96
cmp [bp+_size], 0
jbe short loc_5E96
mov word ptr _exitbuf+2, seg seg000
mov word ptr _exitbuf, 61A4h
mov ax, word ptr [bp+buf]
or ax, word ptr [bp+buf+2]
jnz short loc_5E6B
push [bp+_size]
nop
call _malloc
pop cx
mov word ptr [bp+buf+2], dx
mov word ptr [bp+buf], ax
or ax, dx
jz short loc_5E66
les bx, [bp+_offset]
or word ptr es:[bx+2], 4
jmp short loc_5E6B
; ---------------------------------------------------------------------------
loc_5E66:
mov ax, 0FFFFh
jmp short loc_5E98
; ---------------------------------------------------------------------------
loc_5E6B:
les bx, [bp+_offset]
mov dx, word ptr [bp+buf+2]
mov ax, word ptr [bp+buf]
mov es:[bx+0Eh], dx
mov es:[bx+0Ch], ax
mov es:[bx+0Ah], dx
mov es:[bx+8], ax
mov ax, [bp+_size]
mov es:[bx+6], ax
cmp [bp+_type], 1
jnz short loc_5E96
or word ptr es:[bx+2], 8
loc_5E96:
xor ax, ax
loc_5E98:
pop di
pop si
pop bp
retf
_setvbuf endp ; sp-analysis failed
include libs/BorlandC/setvbuf.asm
include libs/BorlandC/_strcat.asm
include libs/BorlandC/_strcmp.asm
include libs/BorlandC/_strcpy.asm
@ -13870,10 +13731,7 @@ dword_11D8C dd 0
db 0
db 5Ch ; \
db 0
word_11DA0 dw 0
; _setvbuf+4Bw
word_11DA2 dw 0
; _setvbuf+35w
include libs/BorlandC/setvbuf[data].asm
include libs/BorlandC/sysnerr[data].asm
include libs/BorlandC/xx[data].asm
include libs/BorlandC/setenvp[data].asm

View File

@ -2171,147 +2171,7 @@ loc_5B99:
retf
sub_5A5D endp
; =============== S U B R O U T I N E =======================================
; Attributes: library function bp-based frame
; int __cdecl setvbuf(FILE *stream, char *buf, int type, size_t size)
_setvbuf proc far
stream = dword ptr 6
buf = dword ptr 0Ah
_type = word ptr 0Eh
_size = word ptr 10h
push bp
mov bp, sp
push si
push di
les bx, [bp+stream]
mov ax, es:[bx+12h]
cmp ax, word ptr [bp+stream]
jz short loc_5BB3
jmp loc_5C8A
; ---------------------------------------------------------------------------
loc_5BB3:
cmp [bp+_type], 2
jle short loc_5BBC
jmp loc_5C8A
; ---------------------------------------------------------------------------
loc_5BBC:
cmp [bp+_size], 7FFFh
jbe short loc_5BC6
jmp loc_5C8A
; ---------------------------------------------------------------------------
loc_5BC6:
cmp word_11CFE, 0
jnz short loc_5BDC
cmp word ptr [bp+stream], 2898h
jnz short loc_5BDC
mov word_11CFE, 1
jmp short loc_5BF0
; ---------------------------------------------------------------------------
loc_5BDC:
cmp word_11CFC, 0
jnz short loc_5BF0
cmp word ptr [bp+stream], 2884h
jnz short loc_5BF0
mov word_11CFC, 1
loc_5BF0:
les bx, [bp+stream]
cmp word ptr es:[bx], 0
jz short loc_5C0D
mov ax, 1
push ax ; whence
xor ax, ax
push ax
push ax ; offset
push word ptr [bp+stream+2]
push bx ; stream
nopcall _fseek
add sp, 0Ah
loc_5C0D:
les bx, [bp+stream]
test byte ptr es:[bx+2], 4
jz short loc_5C26
push word ptr es:[bx+0Ah]
push word ptr es:[bx+8]
nop
push cs
call near ptr _farfree
pop cx
pop cx
loc_5C26:
les bx, [bp+stream]
and word ptr es:[bx+2], 0FFF3h
mov word ptr es:[bx+6], 0
mov dx, word ptr [bp+stream+2]
mov ax, word ptr [bp+stream]
add ax, 5
mov es:[bx+0Ah], dx
mov es:[bx+8], ax
mov es:[bx+0Eh], dx
mov es:[bx+0Ch], ax
cmp [bp+_type], 2
jz short loc_5CBA
cmp [bp+_size], 0
jbe short loc_5CBA
mov word ptr _exitbuf+2, seg seg000
mov word ptr _exitbuf, 5FC8h
mov ax, word ptr [bp+buf]
or ax, word ptr [bp+buf+2]
jnz short loc_5C8F
push [bp+_size]
nop
push cs
call near ptr _malloc
pop cx
mov word ptr [bp+buf+2], dx
mov word ptr [bp+buf], ax
or ax, dx
jz short loc_5C8A
les bx, [bp+stream]
or word ptr es:[bx+2], 4
jmp short loc_5C8F
; ---------------------------------------------------------------------------
loc_5C8A:
mov ax, 0FFFFh
jmp short loc_5CBC
; ---------------------------------------------------------------------------
loc_5C8F:
les bx, [bp+stream]
mov dx, word ptr [bp+buf+2]
mov ax, word ptr [bp+buf]
mov es:[bx+0Eh], dx
mov es:[bx+0Ch], ax
mov es:[bx+0Ah], dx
mov es:[bx+8], ax
mov ax, [bp+_size]
mov es:[bx+6], ax
cmp [bp+_type], 1
jnz short loc_5CBA
or word ptr es:[bx+2], 8
loc_5CBA:
xor ax, ax
loc_5CBC:
pop di
pop si
pop bp
retf
_setvbuf endp
include libs/BorlandC/setvbuf.asm
include libs/BorlandC/_strcat.asm
include libs/BorlandC/_strcmp.asm
include libs/BorlandC/_strcpy.asm
@ -12481,10 +12341,7 @@ dword_11CE8 dd 0
db 0
db 5Ch ; \
db 0
word_11CFC dw 0
; _setvbuf+4Bw
word_11CFE dw 0
; _setvbuf+35w
include libs/BorlandC/setvbuf[data].asm
include libs/BorlandC/sysnerr[data].asm
include libs/BorlandC/xx[data].asm
include libs/BorlandC/setenvp[data].asm