453 lines
		
	
	
		
			5.6 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			453 lines
		
	
	
		
			5.6 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
.486
 | 
						|
.model flat
 | 
						|
extrn __fltused:near
 | 
						|
extrn __ftol:near
 | 
						|
public _addpoint
 | 
						|
_TEXT segment
 | 
						|
_addpoint:
 | 
						|
push ebx
 | 
						|
push esi
 | 
						|
push edi
 | 
						|
push ebp
 | 
						|
mov ebp,esp
 | 
						|
mov edi,dword ptr (32)[ebp]
 | 
						|
add dword ptr (24)[ebp],edi
 | 
						|
mov edi,dword ptr (36)[ebp]
 | 
						|
add dword ptr (28)[ebp],edi
 | 
						|
mov edi,dword ptr (20)[ebp]
 | 
						|
lea esi,(24)[ebp]
 | 
						|
mov ecx,8
 | 
						|
rep movsb
 | 
						|
L1:
 | 
						|
mov esp,ebp
 | 
						|
pop ebp
 | 
						|
pop edi
 | 
						|
pop esi
 | 
						|
pop ebx
 | 
						|
ret
 | 
						|
public _canonrect
 | 
						|
_canonrect:
 | 
						|
push ebx
 | 
						|
push esi
 | 
						|
push edi
 | 
						|
push ebp
 | 
						|
mov ebp,esp
 | 
						|
sub esp,32
 | 
						|
mov edi,dword ptr (32)[ebp]
 | 
						|
cmp dword ptr (24)[ebp],edi
 | 
						|
jge L10
 | 
						|
mov edi,dword ptr (24)[ebp]
 | 
						|
mov dword ptr (-20)[ebp],edi
 | 
						|
jmp L11
 | 
						|
L10:
 | 
						|
mov edi,dword ptr (32)[ebp]
 | 
						|
mov dword ptr (-20)[ebp],edi
 | 
						|
L11:
 | 
						|
mov edi,dword ptr (-20)[ebp]
 | 
						|
mov dword ptr (-16)[ebp],edi
 | 
						|
mov edi,dword ptr (36)[ebp]
 | 
						|
cmp dword ptr (28)[ebp],edi
 | 
						|
jge L20
 | 
						|
mov edi,dword ptr (28)[ebp]
 | 
						|
mov dword ptr (-24)[ebp],edi
 | 
						|
jmp L21
 | 
						|
L20:
 | 
						|
mov edi,dword ptr (36)[ebp]
 | 
						|
mov dword ptr (-24)[ebp],edi
 | 
						|
L21:
 | 
						|
mov edi,dword ptr (-24)[ebp]
 | 
						|
mov dword ptr (-12)[ebp],edi
 | 
						|
mov edi,dword ptr (32)[ebp]
 | 
						|
cmp dword ptr (24)[ebp],edi
 | 
						|
jle L26
 | 
						|
mov edi,dword ptr (24)[ebp]
 | 
						|
mov dword ptr (-28)[ebp],edi
 | 
						|
jmp L27
 | 
						|
L26:
 | 
						|
mov edi,dword ptr (32)[ebp]
 | 
						|
mov dword ptr (-28)[ebp],edi
 | 
						|
L27:
 | 
						|
mov edi,dword ptr (-28)[ebp]
 | 
						|
mov dword ptr (-8)[ebp],edi
 | 
						|
mov edi,dword ptr (36)[ebp]
 | 
						|
cmp dword ptr (28)[ebp],edi
 | 
						|
jle L37
 | 
						|
mov edi,dword ptr (28)[ebp]
 | 
						|
mov dword ptr (-32)[ebp],edi
 | 
						|
jmp L38
 | 
						|
L37:
 | 
						|
mov edi,dword ptr (36)[ebp]
 | 
						|
mov dword ptr (-32)[ebp],edi
 | 
						|
L38:
 | 
						|
mov edi,dword ptr (-32)[ebp]
 | 
						|
mov dword ptr (-4)[ebp],edi
 | 
						|
mov edi,dword ptr (20)[ebp]
 | 
						|
lea esi,(-16)[ebp]
 | 
						|
mov ecx,16
 | 
						|
rep movsb
 | 
						|
L5:
 | 
						|
mov esp,ebp
 | 
						|
pop ebp
 | 
						|
pop edi
 | 
						|
pop esi
 | 
						|
pop ebx
 | 
						|
ret
 | 
						|
public _makepoint
 | 
						|
_makepoint:
 | 
						|
push ebx
 | 
						|
push esi
 | 
						|
push edi
 | 
						|
push ebp
 | 
						|
mov ebp,esp
 | 
						|
sub esp,8
 | 
						|
mov edi,dword ptr (24)[ebp]
 | 
						|
mov dword ptr (-8)[ebp],edi
 | 
						|
mov edi,dword ptr (28)[ebp]
 | 
						|
mov dword ptr (-4)[ebp],edi
 | 
						|
mov edi,dword ptr (20)[ebp]
 | 
						|
lea esi,(-8)[ebp]
 | 
						|
mov ecx,8
 | 
						|
rep movsb
 | 
						|
L39:
 | 
						|
mov esp,ebp
 | 
						|
pop ebp
 | 
						|
pop edi
 | 
						|
pop esi
 | 
						|
pop ebx
 | 
						|
ret
 | 
						|
public _makerect
 | 
						|
_makerect:
 | 
						|
push ebx
 | 
						|
push esi
 | 
						|
push edi
 | 
						|
push ebp
 | 
						|
mov ebp,esp
 | 
						|
sub esp,16
 | 
						|
lea edi,(-16)[ebp]
 | 
						|
lea esi,(24)[ebp]
 | 
						|
mov ecx,8
 | 
						|
rep movsb
 | 
						|
lea edi,(-8)[ebp]
 | 
						|
lea esi,(32)[ebp]
 | 
						|
mov ecx,8
 | 
						|
rep movsb
 | 
						|
lea esi,(-16)[ebp]
 | 
						|
sub esp,16
 | 
						|
mov edi,esp
 | 
						|
mov ecx,16
 | 
						|
rep movsb
 | 
						|
mov edi,dword ptr (20)[ebp]
 | 
						|
push edi
 | 
						|
call _canonrect
 | 
						|
add esp,20
 | 
						|
L42:
 | 
						|
mov esp,ebp
 | 
						|
pop ebp
 | 
						|
pop edi
 | 
						|
pop esi
 | 
						|
pop ebx
 | 
						|
ret
 | 
						|
public _ptinrect
 | 
						|
_ptinrect:
 | 
						|
push ebx
 | 
						|
push esi
 | 
						|
push edi
 | 
						|
push ebp
 | 
						|
mov ebp,esp
 | 
						|
sub esp,4
 | 
						|
mov edi,dword ptr (20)[ebp]
 | 
						|
cmp edi,dword ptr (28)[ebp]
 | 
						|
jl L53
 | 
						|
cmp edi,dword ptr (36)[ebp]
 | 
						|
jge L53
 | 
						|
mov edi,dword ptr (32)[ebp]
 | 
						|
cmp dword ptr (24)[ebp],edi
 | 
						|
jl L53
 | 
						|
mov edi,dword ptr (40)[ebp]
 | 
						|
cmp dword ptr (24)[ebp],edi
 | 
						|
jge L53
 | 
						|
mov dword ptr (-4)[ebp],1
 | 
						|
jmp L54
 | 
						|
L53:
 | 
						|
mov dword ptr (-4)[ebp],0
 | 
						|
L54:
 | 
						|
mov eax,dword ptr (-4)[ebp]
 | 
						|
L45:
 | 
						|
mov esp,ebp
 | 
						|
pop ebp
 | 
						|
pop edi
 | 
						|
pop esi
 | 
						|
pop ebx
 | 
						|
ret
 | 
						|
_TEXT ends
 | 
						|
_DATA segment
 | 
						|
public _y
 | 
						|
align 1
 | 
						|
_y label byte
 | 
						|
db 97
 | 
						|
db 98
 | 
						|
db 0
 | 
						|
public _odd
 | 
						|
_DATA ends
 | 
						|
_TEXT segment
 | 
						|
_odd:
 | 
						|
push ebx
 | 
						|
push esi
 | 
						|
push edi
 | 
						|
push ebp
 | 
						|
mov ebp,esp
 | 
						|
sub esp,4
 | 
						|
lea edi,(-4)[ebp]
 | 
						|
lea esi,(20)[ebp]
 | 
						|
mov ecx,3
 | 
						|
rep movsb
 | 
						|
lea edi,(-4)[ebp]
 | 
						|
push edi
 | 
						|
lea edi,(L56)
 | 
						|
push edi
 | 
						|
call _printf
 | 
						|
add esp,8
 | 
						|
mov eax,0
 | 
						|
L55:
 | 
						|
mov esp,ebp
 | 
						|
pop ebp
 | 
						|
pop edi
 | 
						|
pop esi
 | 
						|
pop ebx
 | 
						|
ret
 | 
						|
_TEXT ends
 | 
						|
_TEXT segment
 | 
						|
align 4
 | 
						|
L58 label byte
 | 
						|
dd 0
 | 
						|
dd 0
 | 
						|
align 4
 | 
						|
L59 label byte
 | 
						|
dd 320
 | 
						|
dd 320
 | 
						|
align 4
 | 
						|
L60 label byte
 | 
						|
dd -1
 | 
						|
dd -1
 | 
						|
dd 1
 | 
						|
dd 1
 | 
						|
dd 20
 | 
						|
dd 300
 | 
						|
dd 500
 | 
						|
dd 400
 | 
						|
public _main
 | 
						|
_TEXT ends
 | 
						|
_TEXT segment
 | 
						|
_main:
 | 
						|
push ebx
 | 
						|
push esi
 | 
						|
push edi
 | 
						|
push ebp
 | 
						|
mov ebp,esp
 | 
						|
sub esp,108
 | 
						|
lea edi,(-68)[ebp]
 | 
						|
lea esi,(L58)
 | 
						|
mov ecx,8
 | 
						|
rep movsb
 | 
						|
lea edi,(-76)[ebp]
 | 
						|
lea esi,(L59)
 | 
						|
mov ecx,8
 | 
						|
rep movsb
 | 
						|
lea edi,(-36)[ebp]
 | 
						|
lea esi,(L60)
 | 
						|
mov ecx,32
 | 
						|
rep movsb
 | 
						|
push -10
 | 
						|
push -10
 | 
						|
lea edi,(-84)[ebp]
 | 
						|
push edi
 | 
						|
call _makepoint
 | 
						|
add esp,12
 | 
						|
lea esi,(-84)[ebp]
 | 
						|
sub esp,8
 | 
						|
mov edi,esp
 | 
						|
mov ecx,8
 | 
						|
rep movsb
 | 
						|
lea esi,(-76)[ebp]
 | 
						|
sub esp,8
 | 
						|
mov edi,esp
 | 
						|
mov ecx,8
 | 
						|
rep movsb
 | 
						|
lea edi,(-92)[ebp]
 | 
						|
push edi
 | 
						|
call _addpoint
 | 
						|
add esp,20
 | 
						|
push 10
 | 
						|
push 10
 | 
						|
lea edi,(-100)[ebp]
 | 
						|
push edi
 | 
						|
call _makepoint
 | 
						|
add esp,12
 | 
						|
lea esi,(-100)[ebp]
 | 
						|
sub esp,8
 | 
						|
mov edi,esp
 | 
						|
mov ecx,8
 | 
						|
rep movsb
 | 
						|
lea esi,(-68)[ebp]
 | 
						|
sub esp,8
 | 
						|
mov edi,esp
 | 
						|
mov ecx,8
 | 
						|
rep movsb
 | 
						|
lea edi,(-108)[ebp]
 | 
						|
push edi
 | 
						|
call _addpoint
 | 
						|
add esp,20
 | 
						|
lea esi,(-108)[ebp]
 | 
						|
sub esp,8
 | 
						|
mov edi,esp
 | 
						|
mov ecx,8
 | 
						|
rep movsb
 | 
						|
lea esi,(-92)[ebp]
 | 
						|
sub esp,8
 | 
						|
mov edi,esp
 | 
						|
mov ecx,8
 | 
						|
rep movsb
 | 
						|
lea edi,(-52)[ebp]
 | 
						|
push edi
 | 
						|
call _makerect
 | 
						|
add esp,20
 | 
						|
mov dword ptr (-4)[ebp],0
 | 
						|
jmp L64
 | 
						|
L61:
 | 
						|
mov edi,dword ptr (-4)[ebp]
 | 
						|
lea edi,[edi*8]
 | 
						|
mov esi,dword ptr (-32)[ebp][edi]
 | 
						|
push esi
 | 
						|
mov edi,dword ptr (-36)[ebp][edi]
 | 
						|
push edi
 | 
						|
lea edi,(-60)[ebp]
 | 
						|
push edi
 | 
						|
call _makepoint
 | 
						|
add esp,12
 | 
						|
mov edi,dword ptr (-56)[ebp]
 | 
						|
push edi
 | 
						|
mov edi,dword ptr (-4)[ebp]
 | 
						|
mov edi,dword ptr (-36)[ebp][edi*8]
 | 
						|
push edi
 | 
						|
lea edi,(L65)
 | 
						|
push edi
 | 
						|
call _printf
 | 
						|
add esp,12
 | 
						|
lea esi,(-52)[ebp]
 | 
						|
sub esp,16
 | 
						|
mov edi,esp
 | 
						|
mov ecx,16
 | 
						|
rep movsb
 | 
						|
lea esi,(-60)[ebp]
 | 
						|
sub esp,8
 | 
						|
mov edi,esp
 | 
						|
mov ecx,8
 | 
						|
rep movsb
 | 
						|
call _ptinrect
 | 
						|
add esp,24
 | 
						|
cmp eax,0
 | 
						|
jne L68
 | 
						|
lea edi,(L70)
 | 
						|
push edi
 | 
						|
call _printf
 | 
						|
add esp,4
 | 
						|
L68:
 | 
						|
mov edi,dword ptr (-40)[ebp]
 | 
						|
push edi
 | 
						|
mov edi,dword ptr (-44)[ebp]
 | 
						|
push edi
 | 
						|
mov edi,dword ptr (-48)[ebp]
 | 
						|
push edi
 | 
						|
mov edi,dword ptr (-52)[ebp]
 | 
						|
push edi
 | 
						|
lea edi,(L71)
 | 
						|
push edi
 | 
						|
call _printf
 | 
						|
add esp,20
 | 
						|
L62:
 | 
						|
inc dword ptr (-4)[ebp]
 | 
						|
L64:
 | 
						|
mov edi,dword ptr (-4)[ebp]
 | 
						|
cmp edi,4
 | 
						|
jb L61
 | 
						|
lea esi,(_y)
 | 
						|
sub esp,4
 | 
						|
mov edi,esp
 | 
						|
mov ecx,3
 | 
						|
rep movsb
 | 
						|
call _odd
 | 
						|
add esp,3
 | 
						|
push 0
 | 
						|
call _exit
 | 
						|
add esp,4
 | 
						|
mov eax,0
 | 
						|
L57:
 | 
						|
mov esp,ebp
 | 
						|
pop ebp
 | 
						|
pop edi
 | 
						|
pop esi
 | 
						|
pop ebx
 | 
						|
ret
 | 
						|
_TEXT ends
 | 
						|
extrn _exit:near
 | 
						|
_TEXT segment
 | 
						|
_TEXT ends
 | 
						|
extrn _printf:near
 | 
						|
_TEXT segment
 | 
						|
_TEXT ends
 | 
						|
_TEXT segment
 | 
						|
align 1
 | 
						|
L71 label byte
 | 
						|
db 119
 | 
						|
db 105
 | 
						|
db 116
 | 
						|
db 104
 | 
						|
db 105
 | 
						|
db 110
 | 
						|
db 32
 | 
						|
db 91
 | 
						|
db 37
 | 
						|
db 100
 | 
						|
db 44
 | 
						|
db 37
 | 
						|
db 100
 | 
						|
db 59
 | 
						|
db 32
 | 
						|
db 37
 | 
						|
db 100
 | 
						|
db 44
 | 
						|
db 37
 | 
						|
db 100
 | 
						|
db 93
 | 
						|
db 10
 | 
						|
db 0
 | 
						|
align 1
 | 
						|
L70 label byte
 | 
						|
db 110
 | 
						|
db 111
 | 
						|
db 116
 | 
						|
db 32
 | 
						|
db 0
 | 
						|
align 1
 | 
						|
L65 label byte
 | 
						|
db 40
 | 
						|
db 37
 | 
						|
db 100
 | 
						|
db 44
 | 
						|
db 37
 | 
						|
db 100
 | 
						|
db 41
 | 
						|
db 32
 | 
						|
db 105
 | 
						|
db 115
 | 
						|
db 32
 | 
						|
db 0
 | 
						|
align 1
 | 
						|
L56 label byte
 | 
						|
db 37
 | 
						|
db 115
 | 
						|
db 10
 | 
						|
db 0
 | 
						|
_TEXT ends
 | 
						|
end
 |