struct.sbk (5914B)
1 .globl addpoint 2 .text 3 .align 16 4 .type addpoint,@function 5 addpoint: 6 pushl %ebp 7 pushl %ebx 8 pushl %esi 9 pushl %edi 10 movl %esp,%ebp 11 movl 32(%ebp),%edi 12 addl %edi,24(%ebp) 13 movl 36(%ebp),%edi 14 addl %edi,28(%ebp) 15 movl 20(%ebp),%edi 16 leal 24(%ebp),%esi 17 movl $8,%ecx 18 rep 19 movsb 20 .LC1: 21 movl %ebp,%esp 22 popl %edi 23 popl %esi 24 popl %ebx 25 popl %ebp 26 ret 27 .Lf5: 28 .size addpoint,.Lf5-addpoint 29 .globl canonrect 30 .align 16 31 .type canonrect,@function 32 canonrect: 33 pushl %ebp 34 pushl %ebx 35 pushl %esi 36 pushl %edi 37 movl %esp,%ebp 38 subl $32,%esp 39 movl 32(%ebp),%edi 40 cmpl %edi,24(%ebp) 41 jge .LC11 42 movl 24(%ebp),%edi 43 movl %edi,-20(%ebp) 44 jmp .LC12 45 .LC11: 46 movl 32(%ebp),%edi 47 movl %edi,-20(%ebp) 48 .LC12: 49 movl -20(%ebp),%edi 50 movl %edi,-16(%ebp) 51 movl 36(%ebp),%edi 52 cmpl %edi,28(%ebp) 53 jge .LC21 54 movl 28(%ebp),%edi 55 movl %edi,-24(%ebp) 56 jmp .LC22 57 .LC21: 58 movl 36(%ebp),%edi 59 movl %edi,-24(%ebp) 60 .LC22: 61 movl -24(%ebp),%edi 62 movl %edi,-12(%ebp) 63 movl 32(%ebp),%edi 64 cmpl %edi,24(%ebp) 65 jle .LC27 66 movl 24(%ebp),%edi 67 movl %edi,-28(%ebp) 68 jmp .LC28 69 .LC27: 70 movl 32(%ebp),%edi 71 movl %edi,-28(%ebp) 72 .LC28: 73 movl -28(%ebp),%edi 74 movl %edi,-8(%ebp) 75 movl 36(%ebp),%edi 76 cmpl %edi,28(%ebp) 77 jle .LC38 78 movl 28(%ebp),%edi 79 movl %edi,-32(%ebp) 80 jmp .LC39 81 .LC38: 82 movl 36(%ebp),%edi 83 movl %edi,-32(%ebp) 84 .LC39: 85 movl -32(%ebp),%edi 86 movl %edi,-4(%ebp) 87 movl 20(%ebp),%edi 88 leal -16(%ebp),%esi 89 movl $16,%ecx 90 rep 91 movsb 92 .LC6: 93 movl %ebp,%esp 94 popl %edi 95 popl %esi 96 popl %ebx 97 popl %ebp 98 ret 99 .Lf40: 100 .size canonrect,.Lf40-canonrect 101 .globl makepoint 102 .align 16 103 .type makepoint,@function 104 makepoint: 105 pushl %ebp 106 pushl %ebx 107 pushl %esi 108 pushl %edi 109 movl %esp,%ebp 110 subl $8,%esp 111 movl 24(%ebp),%edi 112 movl %edi,-8(%ebp) 113 movl 28(%ebp),%edi 114 movl %edi,-4(%ebp) 115 movl 20(%ebp),%edi 116 leal -8(%ebp),%esi 117 movl $8,%ecx 118 rep 119 movsb 120 .LC41: 121 movl %ebp,%esp 122 popl %edi 123 popl %esi 124 popl %ebx 125 popl %ebp 126 ret 127 .Lf44: 128 .size makepoint,.Lf44-makepoint 129 .globl makerect 130 .align 16 131 .type makerect,@function 132 makerect: 133 pushl %ebp 134 pushl %ebx 135 pushl %esi 136 pushl %edi 137 movl %esp,%ebp 138 subl $16,%esp 139 leal -16(%ebp),%edi 140 leal 24(%ebp),%esi 141 movl $8,%ecx 142 rep 143 movsb 144 leal -8(%ebp),%edi 145 leal 32(%ebp),%esi 146 movl $8,%ecx 147 rep 148 movsb 149 leal -16(%ebp),%esi 150 subl $16,%esp 151 movl %esp,%edi 152 movl $16,%ecx 153 rep 154 movsb 155 pushl 20(%ebp) 156 call canonrect 157 addl $20,%esp 158 .LC45: 159 movl %ebp,%esp 160 popl %edi 161 popl %esi 162 popl %ebx 163 popl %ebp 164 ret 165 .Lf48: 166 .size makerect,.Lf48-makerect 167 .globl ptinrect 168 .align 16 169 .type ptinrect,@function 170 ptinrect: 171 pushl %ebp 172 pushl %ebx 173 pushl %esi 174 pushl %edi 175 movl %esp,%ebp 176 subl $4,%esp 177 movl 20(%ebp),%edi 178 cmpl 28(%ebp),%edi 179 jl .LC57 180 cmpl 36(%ebp),%edi 181 jge .LC57 182 movl 32(%ebp),%edi 183 cmpl %edi,24(%ebp) 184 jl .LC57 185 movl 40(%ebp),%edi 186 cmpl %edi,24(%ebp) 187 jge .LC57 188 movl $1,-4(%ebp) 189 jmp .LC58 190 .LC57: 191 movl $0,-4(%ebp) 192 .LC58: 193 movl -4(%ebp),%eax 194 .LC49: 195 movl %ebp,%esp 196 popl %edi 197 popl %esi 198 popl %ebx 199 popl %ebp 200 ret 201 .Lf59: 202 .size ptinrect,.Lf59-ptinrect 203 .data 204 .globl y 205 .align 4 206 .type y,@object 207 .size y,4 208 y: 209 .byte 97 210 .byte 98 211 .byte 0 212 .space 1 213 .globl odd 214 .text 215 .align 16 216 .type odd,@function 217 odd: 218 pushl %ebp 219 pushl %ebx 220 pushl %esi 221 pushl %edi 222 movl %esp,%ebp 223 subl $4,%esp 224 leal -4(%ebp),%edi 225 leal 20(%ebp),%esi 226 movl $4,%ecx 227 rep 228 movsb 229 leal -4(%ebp),%edi 230 pushl %edi 231 pushl $.LC61 232 call printf 233 addl $8,%esp 234 movl $0,%eax 235 .LC60: 236 movl %ebp,%esp 237 popl %edi 238 popl %esi 239 popl %ebx 240 popl %ebp 241 ret 242 .Lf62: 243 .size odd,.Lf62-odd 244 .data 245 .align 4 246 .LC64: 247 .long 0 248 .long 0 249 .align 4 250 .LC65: 251 .long 320 252 .long 320 253 .align 4 254 .LC66: 255 .long -1 256 .long -1 257 .long 1 258 .long 1 259 .long 20 260 .long 300 261 .long 500 262 .long 400 263 .globl main 264 .text 265 .align 16 266 .type main,@function 267 main: 268 pushl %ebp 269 pushl %ebx 270 pushl %esi 271 pushl %edi 272 movl %esp,%ebp 273 subl $108,%esp 274 leal -68(%ebp),%edi 275 leal .LC64,%esi 276 movl $8,%ecx 277 rep 278 movsb 279 leal -76(%ebp),%edi 280 leal .LC65,%esi 281 movl $8,%ecx 282 rep 283 movsb 284 leal -36(%ebp),%edi 285 leal .LC66,%esi 286 movl $32,%ecx 287 rep 288 movsb 289 pushl $-10 290 pushl $-10 291 leal -84(%ebp),%edi 292 pushl %edi 293 call makepoint 294 addl $12,%esp 295 leal -84(%ebp),%esi 296 subl $8,%esp 297 movl %esp,%edi 298 movl $8,%ecx 299 rep 300 movsb 301 leal -76(%ebp),%esi 302 subl $8,%esp 303 movl %esp,%edi 304 movl $8,%ecx 305 rep 306 movsb 307 leal -92(%ebp),%edi 308 pushl %edi 309 call addpoint 310 addl $20,%esp 311 pushl $10 312 pushl $10 313 leal -100(%ebp),%edi 314 pushl %edi 315 call makepoint 316 addl $12,%esp 317 leal -100(%ebp),%esi 318 subl $8,%esp 319 movl %esp,%edi 320 movl $8,%ecx 321 rep 322 movsb 323 leal -68(%ebp),%esi 324 subl $8,%esp 325 movl %esp,%edi 326 movl $8,%ecx 327 rep 328 movsb 329 leal -108(%ebp),%edi 330 pushl %edi 331 call addpoint 332 addl $20,%esp 333 leal -108(%ebp),%esi 334 subl $8,%esp 335 movl %esp,%edi 336 movl $8,%ecx 337 rep 338 movsb 339 leal -92(%ebp),%esi 340 subl $8,%esp 341 movl %esp,%edi 342 movl $8,%ecx 343 rep 344 movsb 345 leal -52(%ebp),%edi 346 pushl %edi 347 call makerect 348 addl $20,%esp 349 movl $0,-4(%ebp) 350 jmp .LC70 351 .LC67: 352 movl -4(%ebp),%edi 353 leal (,%edi,8),%edi 354 leal -32(%ebp),%esi 355 pushl (%esi,%edi) 356 leal -36(%ebp),%esi 357 pushl (%esi,%edi) 358 leal -60(%ebp),%edi 359 pushl %edi 360 call makepoint 361 addl $12,%esp 362 pushl -56(%ebp) 363 movl -4(%ebp),%edi 364 leal -36(%ebp),%esi 365 pushl (%esi,%edi,8) 366 pushl $.LC71 367 call printf 368 addl $12,%esp 369 leal -52(%ebp),%esi 370 subl $16,%esp 371 movl %esp,%edi 372 movl $16,%ecx 373 rep 374 movsb 375 leal -60(%ebp),%esi 376 subl $8,%esp 377 movl %esp,%edi 378 movl $8,%ecx 379 rep 380 movsb 381 call ptinrect 382 addl $24,%esp 383 cmpl $0,%eax 384 jne .LC74 385 pushl $.LC76 386 call printf 387 addl $4,%esp 388 .LC74: 389 pushl -40(%ebp) 390 pushl -44(%ebp) 391 pushl -48(%ebp) 392 pushl -52(%ebp) 393 pushl $.LC77 394 call printf 395 addl $20,%esp 396 .LC68: 397 incl -4(%ebp) 398 .LC70: 399 movl -4(%ebp),%edi 400 cmpl $4,%edi 401 jb .LC67 402 leal y,%esi 403 subl $4,%esp 404 movl %esp,%edi 405 movl $4,%ecx 406 rep 407 movsb 408 call odd 409 addl $4,%esp 410 pushl $0 411 call exit 412 addl $4,%esp 413 movl $0,%eax 414 .LC63: 415 movl %ebp,%esp 416 popl %edi 417 popl %esi 418 popl %ebx 419 popl %ebp 420 ret 421 .Lf82: 422 .size main,.Lf82-main 423 .data 424 .align 1 425 .LC77: 426 .byte 119 427 .byte 105 428 .byte 116 429 .byte 104 430 .byte 105 431 .byte 110 432 .byte 32 433 .byte 91 434 .byte 37 435 .byte 100 436 .byte 44 437 .byte 37 438 .byte 100 439 .byte 59 440 .byte 32 441 .byte 37 442 .byte 100 443 .byte 44 444 .byte 37 445 .byte 100 446 .byte 93 447 .byte 10 448 .byte 0 449 .align 1 450 .LC76: 451 .byte 110 452 .byte 111 453 .byte 116 454 .byte 32 455 .byte 0 456 .align 1 457 .LC71: 458 .byte 40 459 .byte 37 460 .byte 100 461 .byte 44 462 .byte 37 463 .byte 100 464 .byte 41 465 .byte 32 466 .byte 105 467 .byte 115 468 .byte 32 469 .byte 0 470 .align 1 471 .LC61: 472 .byte 37 473 .byte 115 474 .byte 10 475 .byte 0 476 .text 477 .ident "LCC: 4.1"