| .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 |