struct.sbk (5790B)
1 .486 2 .model flat 3 extrn __fltused:near 4 extrn __ftol:near 5 public _addpoint 6 _TEXT segment 7 _addpoint: 8 push ebx 9 push esi 10 push edi 11 push ebp 12 mov ebp,esp 13 mov edi,dword ptr (32)[ebp] 14 add dword ptr (24)[ebp],edi 15 mov edi,dword ptr (36)[ebp] 16 add dword ptr (28)[ebp],edi 17 mov edi,dword ptr (20)[ebp] 18 lea esi,(24)[ebp] 19 mov ecx,8 20 rep movsb 21 L1: 22 mov esp,ebp 23 pop ebp 24 pop edi 25 pop esi 26 pop ebx 27 ret 28 public _canonrect 29 _canonrect: 30 push ebx 31 push esi 32 push edi 33 push ebp 34 mov ebp,esp 35 sub esp,32 36 mov edi,dword ptr (32)[ebp] 37 cmp dword ptr (24)[ebp],edi 38 jge L10 39 mov edi,dword ptr (24)[ebp] 40 mov dword ptr (-20)[ebp],edi 41 jmp L11 42 L10: 43 mov edi,dword ptr (32)[ebp] 44 mov dword ptr (-20)[ebp],edi 45 L11: 46 mov edi,dword ptr (-20)[ebp] 47 mov dword ptr (-16)[ebp],edi 48 mov edi,dword ptr (36)[ebp] 49 cmp dword ptr (28)[ebp],edi 50 jge L20 51 mov edi,dword ptr (28)[ebp] 52 mov dword ptr (-24)[ebp],edi 53 jmp L21 54 L20: 55 mov edi,dword ptr (36)[ebp] 56 mov dword ptr (-24)[ebp],edi 57 L21: 58 mov edi,dword ptr (-24)[ebp] 59 mov dword ptr (-12)[ebp],edi 60 mov edi,dword ptr (32)[ebp] 61 cmp dword ptr (24)[ebp],edi 62 jle L26 63 mov edi,dword ptr (24)[ebp] 64 mov dword ptr (-28)[ebp],edi 65 jmp L27 66 L26: 67 mov edi,dword ptr (32)[ebp] 68 mov dword ptr (-28)[ebp],edi 69 L27: 70 mov edi,dword ptr (-28)[ebp] 71 mov dword ptr (-8)[ebp],edi 72 mov edi,dword ptr (36)[ebp] 73 cmp dword ptr (28)[ebp],edi 74 jle L37 75 mov edi,dword ptr (28)[ebp] 76 mov dword ptr (-32)[ebp],edi 77 jmp L38 78 L37: 79 mov edi,dword ptr (36)[ebp] 80 mov dword ptr (-32)[ebp],edi 81 L38: 82 mov edi,dword ptr (-32)[ebp] 83 mov dword ptr (-4)[ebp],edi 84 mov edi,dword ptr (20)[ebp] 85 lea esi,(-16)[ebp] 86 mov ecx,16 87 rep movsb 88 L5: 89 mov esp,ebp 90 pop ebp 91 pop edi 92 pop esi 93 pop ebx 94 ret 95 public _makepoint 96 _makepoint: 97 push ebx 98 push esi 99 push edi 100 push ebp 101 mov ebp,esp 102 sub esp,8 103 mov edi,dword ptr (24)[ebp] 104 mov dword ptr (-8)[ebp],edi 105 mov edi,dword ptr (28)[ebp] 106 mov dword ptr (-4)[ebp],edi 107 mov edi,dword ptr (20)[ebp] 108 lea esi,(-8)[ebp] 109 mov ecx,8 110 rep movsb 111 L39: 112 mov esp,ebp 113 pop ebp 114 pop edi 115 pop esi 116 pop ebx 117 ret 118 public _makerect 119 _makerect: 120 push ebx 121 push esi 122 push edi 123 push ebp 124 mov ebp,esp 125 sub esp,16 126 lea edi,(-16)[ebp] 127 lea esi,(24)[ebp] 128 mov ecx,8 129 rep movsb 130 lea edi,(-8)[ebp] 131 lea esi,(32)[ebp] 132 mov ecx,8 133 rep movsb 134 lea esi,(-16)[ebp] 135 sub esp,16 136 mov edi,esp 137 mov ecx,16 138 rep movsb 139 mov edi,dword ptr (20)[ebp] 140 push edi 141 call _canonrect 142 add esp,20 143 L42: 144 mov esp,ebp 145 pop ebp 146 pop edi 147 pop esi 148 pop ebx 149 ret 150 public _ptinrect 151 _ptinrect: 152 push ebx 153 push esi 154 push edi 155 push ebp 156 mov ebp,esp 157 sub esp,4 158 mov edi,dword ptr (20)[ebp] 159 cmp edi,dword ptr (28)[ebp] 160 jl L53 161 cmp edi,dword ptr (36)[ebp] 162 jge L53 163 mov edi,dword ptr (32)[ebp] 164 cmp dword ptr (24)[ebp],edi 165 jl L53 166 mov edi,dword ptr (40)[ebp] 167 cmp dword ptr (24)[ebp],edi 168 jge L53 169 mov dword ptr (-4)[ebp],1 170 jmp L54 171 L53: 172 mov dword ptr (-4)[ebp],0 173 L54: 174 mov eax,dword ptr (-4)[ebp] 175 L45: 176 mov esp,ebp 177 pop ebp 178 pop edi 179 pop esi 180 pop ebx 181 ret 182 _TEXT ends 183 _DATA segment 184 public _y 185 align 4 186 _y label byte 187 db 97 188 db 98 189 db 0 190 db 1 dup (0) 191 public _odd 192 _DATA ends 193 _TEXT segment 194 _odd: 195 push ebx 196 push esi 197 push edi 198 push ebp 199 mov ebp,esp 200 sub esp,4 201 lea edi,(-4)[ebp] 202 lea esi,(20)[ebp] 203 mov ecx,4 204 rep movsb 205 lea edi,(-4)[ebp] 206 push edi 207 lea edi,(L56) 208 push edi 209 call _printf 210 add esp,8 211 mov eax,0 212 L55: 213 mov esp,ebp 214 pop ebp 215 pop edi 216 pop esi 217 pop ebx 218 ret 219 _TEXT ends 220 _TEXT segment 221 align 4 222 L58 label byte 223 dd 0 224 dd 0 225 align 4 226 L59 label byte 227 dd 320 228 dd 320 229 align 4 230 L60 label byte 231 dd -1 232 dd -1 233 dd 1 234 dd 1 235 dd 20 236 dd 300 237 dd 500 238 dd 400 239 public _main 240 _TEXT ends 241 _TEXT segment 242 _main: 243 push ebx 244 push esi 245 push edi 246 push ebp 247 mov ebp,esp 248 sub esp,108 249 lea edi,(-68)[ebp] 250 lea esi,(L58) 251 mov ecx,8 252 rep movsb 253 lea edi,(-76)[ebp] 254 lea esi,(L59) 255 mov ecx,8 256 rep movsb 257 lea edi,(-36)[ebp] 258 lea esi,(L60) 259 mov ecx,32 260 rep movsb 261 push -10 262 push -10 263 lea edi,(-84)[ebp] 264 push edi 265 call _makepoint 266 add esp,12 267 lea esi,(-84)[ebp] 268 sub esp,8 269 mov edi,esp 270 mov ecx,8 271 rep movsb 272 lea esi,(-76)[ebp] 273 sub esp,8 274 mov edi,esp 275 mov ecx,8 276 rep movsb 277 lea edi,(-92)[ebp] 278 push edi 279 call _addpoint 280 add esp,20 281 push 10 282 push 10 283 lea edi,(-100)[ebp] 284 push edi 285 call _makepoint 286 add esp,12 287 lea esi,(-100)[ebp] 288 sub esp,8 289 mov edi,esp 290 mov ecx,8 291 rep movsb 292 lea esi,(-68)[ebp] 293 sub esp,8 294 mov edi,esp 295 mov ecx,8 296 rep movsb 297 lea edi,(-108)[ebp] 298 push edi 299 call _addpoint 300 add esp,20 301 lea esi,(-108)[ebp] 302 sub esp,8 303 mov edi,esp 304 mov ecx,8 305 rep movsb 306 lea esi,(-92)[ebp] 307 sub esp,8 308 mov edi,esp 309 mov ecx,8 310 rep movsb 311 lea edi,(-52)[ebp] 312 push edi 313 call _makerect 314 add esp,20 315 mov dword ptr (-4)[ebp],0 316 jmp L64 317 L61: 318 mov edi,dword ptr (-4)[ebp] 319 lea edi,[edi*8] 320 mov esi,dword ptr (-32)[ebp][edi] 321 push esi 322 mov edi,dword ptr (-36)[ebp][edi] 323 push edi 324 lea edi,(-60)[ebp] 325 push edi 326 call _makepoint 327 add esp,12 328 mov edi,dword ptr (-56)[ebp] 329 push edi 330 mov edi,dword ptr (-4)[ebp] 331 mov edi,dword ptr (-36)[ebp][edi*8] 332 push edi 333 lea edi,(L65) 334 push edi 335 call _printf 336 add esp,12 337 lea esi,(-52)[ebp] 338 sub esp,16 339 mov edi,esp 340 mov ecx,16 341 rep movsb 342 lea esi,(-60)[ebp] 343 sub esp,8 344 mov edi,esp 345 mov ecx,8 346 rep movsb 347 call _ptinrect 348 add esp,24 349 cmp eax,0 350 jne L68 351 lea edi,(L70) 352 push edi 353 call _printf 354 add esp,4 355 L68: 356 mov edi,dword ptr (-40)[ebp] 357 push edi 358 mov edi,dword ptr (-44)[ebp] 359 push edi 360 mov edi,dword ptr (-48)[ebp] 361 push edi 362 mov edi,dword ptr (-52)[ebp] 363 push edi 364 lea edi,(L71) 365 push edi 366 call _printf 367 add esp,20 368 L62: 369 inc dword ptr (-4)[ebp] 370 L64: 371 mov edi,dword ptr (-4)[ebp] 372 cmp edi,4 373 jb L61 374 lea esi,(_y) 375 sub esp,4 376 mov edi,esp 377 mov ecx,4 378 rep movsb 379 call _odd 380 add esp,4 381 push 0 382 call _exit 383 add esp,4 384 mov eax,0 385 L57: 386 mov esp,ebp 387 pop ebp 388 pop edi 389 pop esi 390 pop ebx 391 ret 392 _TEXT ends 393 extrn _exit:near 394 _TEXT segment 395 _TEXT ends 396 extrn _printf:near 397 _TEXT segment 398 _TEXT ends 399 _TEXT segment 400 align 1 401 L71 label byte 402 db 119 403 db 105 404 db 116 405 db 104 406 db 105 407 db 110 408 db 32 409 db 91 410 db 37 411 db 100 412 db 44 413 db 37 414 db 100 415 db 59 416 db 32 417 db 37 418 db 100 419 db 44 420 db 37 421 db 100 422 db 93 423 db 10 424 db 0 425 align 1 426 L70 label byte 427 db 110 428 db 111 429 db 116 430 db 32 431 db 0 432 align 1 433 L65 label byte 434 db 40 435 db 37 436 db 100 437 db 44 438 db 37 439 db 100 440 db 41 441 db 32 442 db 105 443 db 115 444 db 32 445 db 0 446 align 1 447 L56 label byte 448 db 37 449 db 115 450 db 10 451 db 0 452 _TEXT ends 453 end