From: do (Don Cohen)

Subject: Re: Franz ACL 4.3.2 for Windows compared to ACL 3.0.1

Date: 1997-6-10 12:07

  Marc BATTYANI
  Can somebody post a disassembly of the benchmark using ACL 4.3.2?
  Thanks
  Marc Battyani

USER(4):   (defun pnpoly (npol xp yp x y)
    (declare (optimize (speed 3) (safety 0))
  	   (fixnum npol)
  	   (double-float x y)
  	   (type (simple-array double-float (*)) xp yp))
    (let* ((c nil)
  	 (j (1- npol)))
      (declare (fixnum j))
      (dotimes (i npol c)
        (declare (fixnum i))
        (if (and (or (and (<= (aref yp i) y) (< y (aref yp j)))
  		   (and (<= (aref yp j) y) (< y (aref yp i))))
  	       (< x (+ (aref xp i) (/ (* (- (aref xp j) (aref xp i)) (- y (aref yp i)))
  				      (- (aref yp j) (aref yp i))))))
  	  (setq c (not c)))
        (setq j i))))
PNPOLY
USER(5): (compile *)
PNPOLY
NIL
NIL
USER(6): (disassemble *)
;; disassembly of #<Function PNPOLY>
;; formals: NPOL XP YP X Y
;; constant vector:
0:	C

;; code start: #x29d00bac:
   0: 55          pushl	ebp
   1: 8b ec       movl	ebp,esp
   3: 56          pushl	esi
   4: 83 ec 44    subl	esp,$68
   7: ff 77 d7    pushl	[edi-41]        ; C_BNP
  10: 8f 45 f8    popl	[ebp-8]
  13: 89 45 d0    movl	[ebp-48],eax    ; (local 1)
  16: 89 55 c8    movl	[ebp-56],edx    ; (local 3)
  19: 8b 5d 18    movl	ebx,[ebp+24]    ; Y
  22: dd 43 16    fldq [ebx+22]
  25: dd da       fstp st(2)
  27: 8b 5d 14    movl	ebx,[ebp+20]    ; X
  30: dd 43 16    fldq [ebx+22]
  33: dd db       fstp st(3)
  35: d9 c1       fld st,st(1)
  37: dd 5d e0    fstpq [ebp-32]
  40: 8b c7       movl	eax,edi
  42: d9 c2       fld st,st(2)
  44: dd 5d d8    fstpq [ebp-40]
  47: 8b 56 32    movl	edx,[esi+50]    ; C
  50: ff 57 47    call	*[edi+71]       ; BIND-ONE-SPEC
  53: 8b 5d d0    movl	ebx,[ebp-48]    ; (local 1)
  56: 83 c3 fc    addl	ebx,$-4
  59: 33 d2       xorl	edx,edx
  61: 3b 55 d0    cmpl	edx,[ebp-48]    ; (local 1)
  64: 7c 18       jl	90
  66: 8b 4e 32    movl	ecx,[esi+50]    ; C
  69: 8b 41 0d    movl	eax,[ecx+13]
  72: f8          clc
  73: 72 03       jb	78
  75: 33 c9       xorl	ecx,ecx
  77: 41          incl	ecx
  78: 33 d2       xorl	edx,edx
  80: b2 04       movb	dl,$4
  82: ff 57 6f    call	*[edi+111]      ; UNBIND-COUNT
  85: c9          leave
  86: 8b 75 fc    movl	esi,[ebp-4]
  89: c3          ret
  90: 8b c2       movl	eax,edx
  92: d1 e0       sall	eax,$1
  94: 89 5d cc    movl	[ebp-52],ebx    ; (local 2)
  97: 8b 5d 10    movl	ebx,[ebp+16]    ; YP
 100: dd 44 03 16 fldq [ebx+eax+22]
 104: dd da       fstp st(2)
 106: dd 45 e0    fldq [ebp-32]
 109: dd db       fstp st(3)
 111: d9 c1       fld st,st(1)
 113: d8 db       fcomp st,st(3)
 115: 8b c8       movl	ecx,eax
 117: df e0       ffstswax 
 119: 9e          sahf
 120: 8b c1       movl	eax,ecx
 122: 7b 02       jnp	126
 124: cd 68       int	$104
 126: 76 2c       jbe	172
 128: 8b 45 cc    movl	eax,[ebp-52]    ; (local 2)
 131: 89 55 d4    movl	[ebp-44],edx    ; (local 0)
 134: 8b d0       movl	edx,eax
 136: d1 e2       sall	edx,$1
 138: dd 44 13 16 fldq [ebx+edx+22]
 142: dd da       fstp st(2)
 144: d9 c1       fld st,st(1)
 146: d8 db       fcomp st,st(3)
 148: 8b c8       movl	ecx,eax
 150: df e0       ffstswax 
 152: 9e          sahf
 153: 8b c1       movl	eax,ecx
 155: 7b 02       jnp	159
 157: cd 68       int	$104
 159: 76 31       jbe	210
 161: 8b 5d d4    movl	ebx,[ebp-44]    ; (local 0)
 164: 8b 55 d4    movl	edx,[ebp-44]    ; (local 0)
 167: 83 c2 04    addl	edx,$4
 170: eb 91       jmp	61
 172: 8b 45 cc    movl	eax,[ebp-52]    ; (local 2)
 175: 89 55 d4    movl	[ebp-44],edx    ; (local 0)
 178: 8b d0       movl	edx,eax
 180: d1 e2       sall	edx,$1
 182: dd 44 13 16 fldq [ebx+edx+22]
 186: dd da       fstp st(2)
 188: d9 c2       fld st,st(2)
 190: d8 da       fcomp st,st(2)
 192: 8b c8       movl	ecx,eax
 194: df e0       ffstswax 
 196: 9e          sahf
 197: 8b c1       movl	eax,ecx
 199: 7b 02       jnp	203
 201: cd 68       int	$104
 203: 72 29       jb	246
 205: 8b 55 d4    movl	edx,[ebp-44]    ; (local 0)
 208: eb ae       jmp	128
 210: 8b 55 d4    movl	edx,[ebp-44]    ; (local 0)
 213: 8b c2       movl	eax,edx
 215: d1 e0       sall	eax,$1
 217: dd 44 03 16 fldq [ebx+eax+22]
 221: dd da       fstp st(2)
 223: d9 c2       fld st,st(2)
 225: d8 da       fcomp st,st(2)
 227: 8b c8       movl	ecx,eax
 229: df e0       ffstswax 
 231: 9e          sahf
 232: 8b c1       movl	eax,ecx
 234: 7b 02       jnp	238
 236: cd 68       int	$104
 238: 0f 82 a2 00 jb	406
      00 00 
 244: eb ab       jmp	161
 246: 8b 55 d4    movl	edx,[ebp-44]    ; (local 0)
 249: 8b da       movl	ebx,edx
 251: d1 e3       sall	ebx,$1
 253: 8b 45 c8    movl	eax,[ebp-56]    ; (local 3)
 256: dd 44 18 16 fldq [eax+ebx+22]
 260: dd da       fstp st(2)
 262: 8b 5d cc    movl	ebx,[ebp-52]    ; (local 2)
 265: 8b d3       movl	edx,ebx
 267: d1 e2       sall	edx,$1
 269: dd 44 10 16 fldq [eax+edx+22]
 273: dd dc       fstp st(4)
 275: 8b 55 d4    movl	edx,[ebp-44]    ; (local 0)
 278: 8b da       movl	ebx,edx
 280: d1 e3       sall	ebx,$1
 282: dd 44 18 16 fldq [eax+ebx+22]
 286: dd dd       fstp st(5)
 288: d9 c3       fld st,st(3)
 290: d8 e5       fsub st,st(5)
 292: dd dc       fstp st(4)
 294: 8b da       movl	ebx,edx
 296: d1 e3       sall	ebx,$1
 298: 8b 45 10    movl	eax,[ebp+16]    ; YP
 301: dd 44 18 16 fldq [eax+ebx+22]
 305: dd dd       fstp st(5)
 307: d9 c2       fld st,st(2)
 309: d8 e5       fsub st,st(5)
 311: dd dd       fstp st(5)
 313: d9 c3       fld st,st(3)
 315: d8 cd       fmul st,st(5)
 317: dd dc       fstp st(4)
 319: 8b 5d cc    movl	ebx,[ebp-52]    ; (local 2)
 322: d1 e3       sall	ebx,$1
 324: dd 44 18 16 fldq [eax+ebx+22]
 328: dd dd       fstp st(5)
 330: 8b da       movl	ebx,edx
 332: d1 e3       sall	ebx,$1
 334: dd 44 18 16 fldq [eax+ebx+22]
 338: dd de       fstp st(6)
 340: d9 c4       fld st,st(4)
 342: d8 e6       fsub st,st(6)
 344: dd dd       fstp st(5)
 346: d9 c3       fld st,st(3)
 348: d8 f5       fdiv st,st(5)
 350: dd dc       fstp st(4)
 352: d9 c1       fld st,st(1)
 354: d8 c4       fadd st,st(4)
 356: dd da       fstp st(2)
 358: dd 45 d8    fldq [ebp-40]
 361: dd dc       fstp st(4)
 363: d9 c3       fld st,st(3)
 365: d8 da       fcomp st,st(2)
 367: 8b c8       movl	ecx,eax
 369: df e0       ffstswax 
 371: 9e          sahf
 372: 8b c1       movl	eax,ecx
 374: 7b 02       jnp	378
 376: cd 68       int	$104
 378: 73 22       jnb	414
 380: 8b 4e 32    movl	ecx,[esi+50]    ; C
 383: 8b 59 0d    movl	ebx,[ecx+13]
 386: 3b fb       cmpl	edi,ebx
 388: 75 1f       jnz	421
 390: 8b 5f f3    movl	ebx,[edi-13]    ; T
 393: 8b 56 32    movl	edx,[esi+50]    ; C
 396: 89 5a 0d    movl	[edx+13],ebx
 399: 8b d8       movl	ebx,eax
 401: e9 0b ff ff jmp 161
      ff 
 406: 8b 45 cc    movl	eax,[ebp-52]    ; (local 2)
 409: e9 58 ff ff jmp 246
      ff 
 414: 8b d8       movl	ebx,eax
 416: e9 fc fe ff jmp 161
      ff 
 421: 8b df       movl	ebx,edi
 423: eb e0       jmp	393
 425: 90          nop
USER(7): (defun pnpolytest ()
    (declare (optimize (speed 3) (safety 0)))
    (let ((npol 20)
  	(count 0)
  	(xp (make-array 20 :element-type 'double-float
  			:initial-contents '(0.0d0 1.0d0 1.0d0 0.0d0 0.0d0 1.0d0 -0.5d0 -1.0d0
  					    -1.0d0 -2.0d0 -2.5d0 -2.0d0 -1.5d0 -0.5d0 1.0d0
  					    1.0d0 0.0d0 -0.5d0 -1.0d0 -.5d0)))
  	(yp (make-array 20 :element-type 'double-float
  			:initial-contents '(0.0d0 0.0d0 1.0d0 1.0d0 2.0d0 3.0d0 2.0d0 3.0d0
  					    0.0d0 -0.5d0 -1.0d0 -1.5d0 -2.0d0 -2.0d0 -1.5d0
  					    -1.0d0 -0.5d0 -1.0d0 -1.0d0 -0.5d0))))
      (declare (fixnum npol count)
  	     (type (simple-array double-float (20)) xp yp))
      (dotimes (i 100000)
        (if (pnpoly npol xp yp 0.5d0 0.5d0) (incf count))
        (if (pnpoly npol xp yp 0.5d0 1.5d0) (incf count))
        (if (pnpoly npol xp yp -0.5d0 1.5d0) (incf count))
        (if (pnpoly npol xp yp 0.75d0 2.25d0) (incf count))
        (if (pnpoly npol xp yp 0.0d0 2.01d0) (incf count))
        (if (pnpoly npol xp yp -0.5d0 2.5d0) (incf count))
        (if (pnpoly npol xp yp -1.0d0 -0.5d0) (incf count))
        (if (pnpoly npol xp yp -1.5d0 0.5d0) (incf count))
        (if (pnpoly npol xp yp -2.25d0 -1.0d0) (incf count))
        (if (pnpoly npol xp yp 0.5d0 -0.25d0) (incf count))
        (if (pnpoly npol xp yp 0.5d0 -1.25d0) (incf count))
        (if (pnpoly npol xp yp -0.5d0 -2.5d0) (incf count)))
      (princ "Count ") (princ count)
      count))
PNPOLYTEST
USER(8): (compile *)
PNPOLYTEST
NIL
NIL
USER(9): (disassemble *)
;; disassembly of #<Function PNPOLYTEST>
;; formals: 
;; constant vector:
0:	(20)
1:	(0.0d0 1.0d0 1.0d0 0.0d0 0.0d0 1.0d0 -0.5d0 -1.0d0 -1.0d0 -2.0d0 -2.5d0 ..)
2:	EXCL::ARRAY-INITIALIZE
3:	(0.0d0 0.0d0 1.0d0 1.0d0 2.0d0 3.0d0 2.0d0 3.0d0 0.0d0 -0.5d0 -1.0d0 ..)
4:	COUNT
5:	"Count "
6:	PRINC
7:	0.5d0
8:	PNPOLY
9:	1.5d0
10:	-0.5d0
11:	0.75d0
12:	2.25d0
13:	0.0d0
14:	2.01d0
15:	2.5d0
16:	-1.0d0
17:	-1.5d0
18:	-2.25d0
19:	-0.25d0
20:	-1.25d0
21:	-2.5d0

;; code start: #x29d4ba74:
   0: 55          pushl	ebp
   1: 8b ec       movl	ebp,esp
   3: 56          pushl	esi
   4: 81 ec a4 00 subl	esp,$164        ; 41
      00 00 
  10: ff 77 d7    pushl	[edi-41]        ; C_BNP
  13: 8f 45 f8    popl	[ebp-8]
  16: 6a 50       pushb	$80             ; 20
  18: 8f 45 e4    popl	[ebp-28]        ; (local 0)
  21: 8b d7       movl	edx,edi
  23: 33 c0       xorl	eax,eax
  25: b0 50       movb	al,$80
  27: 83 c4 10    addl	esp,$16
  30: 57          pushl	edi
  31: 68 9c 01 00 pushl	$412            ; 103
      00 
  36: 52          pushl	edx
  37: 50          pushl	eax
  38: 33 c9       xorl	ecx,ecx
  40: b1 04       movb	cl,$4
  42: ff 97 cb 00 call	*[edi+203]      ; MAKE-SVECTOR
      00 00 
  48: 89 45 e0    movl	[ebp-32],eax    ; (local 1)
  51: 8b 56 32    movl	edx,[esi+50]    ; (20)
  54: 83 c4 0c    addl	esp,$12
  57: ff 76 36    pushl	[esi+54]        ; (0.0d0
                                           1.0d0
                                           1.0d0
                                           0.0d0
                                           0.0d0
                                           1.0d0
                                           -0.5d0
                                           -1.0d0
                                           -1.0d0
                                           -2.0d0
                                           -2.5d0
                                           -2.0d0
                                           -1.5d0
                                           -0.5d0
                                           1.0d0
                                           1.0d0
                                           0.0d0
                                           -0.5d0
                                           -1.0d0
                                           -0.5d0)
  60: 52          pushl	edx
  61: 50          pushl	eax
  62: 8b 5e 3a    movl	ebx,[esi+58]    ; ARRAY-INITIALIZE
  65: b1 03       movb	cl,$3
  67: ff d7       call	*edi
  69: 8b d7       movl	edx,edi
  71: 33 c0       xorl	eax,eax
  73: b0 50       movb	al,$80
  75: 83 c4 10    addl	esp,$16
  78: 57          pushl	edi
  79: 68 9c 01 00 pushl	$412            ; 103
      00 
  84: 52          pushl	edx
  85: 50          pushl	eax
  86: 33 c9       xorl	ecx,ecx
  88: b1 04       movb	cl,$4
  90: ff 97 cb 00 call	*[edi+203]      ; MAKE-SVECTOR
      00 00 
  96: 89 45 dc    movl	[ebp-36],eax    ; (local 2)
  99: 8b 56 32    movl	edx,[esi+50]    ; (20)
 102: 83 c4 0c    addl	esp,$12
 105: ff 76 3e    pushl	[esi+62]        ; (0.0d0
                                           0.0d0
                                           1.0d0
                                           1.0d0
                                           2.0d0
                                           3.0d0
                                           2.0d0
                                           3.0d0
                                           0.0d0
                                           -0.5d0
                                           -1.0d0
                                           -1.5d0
                                           -2.0d0
                                           -2.0d0
                                           -1.5d0
                                           -1.0d0
                                           -0.5d0
                                           -1.0d0
                                           -1.0d0
                                           -0.5d0)
 108: 52          pushl	edx
 109: 50          pushl	eax
 110: 8b 5e 3a    movl	ebx,[esi+58]    ; ARRAY-INITIALIZE
 113: b1 03       movb	cl,$3
 115: ff d7       call	*edi
 117: 33 c0       xorl	eax,eax
 119: 8b 56 42    movl	edx,[esi+66]    ; COUNT
 122: ff 57 47    call	*[edi+71]       ; BIND-ONE-SPEC
 125: 33 db       xorl	ebx,ebx
 127: 81 fb 80 1a cmpl	ebx,$400000     ; 100000
      06 00 
 133: 7c 2f       jl	182
 135: 8b 46 46    movl	eax,[esi+70]    ; Count 
 138: 8b 5e 4a    movl	ebx,[esi+74]    ; PRINC
 141: b1 01       movb	cl,$1
 143: ff d7       call	*edi
 145: 8b 4e 42    movl	ecx,[esi+66]    ; COUNT
 148: 8b 41 0d    movl	eax,[ecx+13]
 151: 8b 5e 4a    movl	ebx,[esi+74]    ; PRINC
 154: b1 01       movb	cl,$1
 156: ff d7       call	*edi
 158: 8b 4e 42    movl	ecx,[esi+66]    ; COUNT
 161: 8b 41 0d    movl	eax,[ecx+13]
 164: f8          clc
 165: 72 03       jb	170
 167: 33 c9       xorl	ecx,ecx
 169: 41          incl	ecx
 170: 33 d2       xorl	edx,edx
 172: b2 04       movb	dl,$4
 174: ff 57 6f    call	*[edi+111]      ; UNBIND-COUNT
 177: c9          leave
 178: 8b 75 fc    movl	esi,[ebp-4]
 181: c3          ret
 182: ff 76 4e    pushl	[esi+78]        ; 0.5d0
 185: 8f 45 d4    popl	[ebp-44]        ; (local 4)
 188: 89 5d d8    movl	[ebp-40],ebx    ; (local 3)
 191: ff 76 4e    pushl	[esi+78]        ; 0.5d0
 194: 8f 45 d0    popl	[ebp-48]        ; (local 5)
 197: 8b 45 e4    movl	eax,[ebp-28]    ; (local 0)
 200: 8b 55 e0    movl	edx,[ebp-32]    ; (local 1)
 203: 83 c4 14    addl	esp,$20
 206: ff 75 d0    pushl	[ebp-48]        ; (local 5)
 209: ff 75 d4    pushl	[ebp-44]        ; (local 4)
 212: ff 75 dc    pushl	[ebp-36]        ; (local 2)
 215: 52          pushl	edx
 216: 50          pushl	eax
 217: 8b 5e 52    movl	ebx,[esi+82]    ; PNPOLY
 220: b1 05       movb	cl,$5
 222: ff d7       call	*edi
 224: 3b f8       cmpl	edi,eax
 226: 74 0f       jz	243
 228: 8b 4e 42    movl	ecx,[esi+66]    ; COUNT
 231: 8b 59 0d    movl	ebx,[ecx+13]
 234: 83 c3 04    addl	ebx,$4
 237: 8b 56 42    movl	edx,[esi+66]    ; COUNT
 240: 89 5a 0d    movl	[edx+13],ebx
 243: ff 76 4e    pushl	[esi+78]        ; 0.5d0
 246: 8f 45 cc    popl	[ebp-52]        ; (local 6)
 249: ff 76 56    pushl	[esi+86]        ; 1.5d0
 252: 8f 45 c8    popl	[ebp-56]        ; (local 7)
 255: 8b 45 e4    movl	eax,[ebp-28]    ; (local 0)
 258: 8b 55 e0    movl	edx,[ebp-32]    ; (local 1)
 261: 83 c4 14    addl	esp,$20
 264: ff 75 c8    pushl	[ebp-56]        ; (local 7)
 267: ff 75 cc    pushl	[ebp-52]        ; (local 6)
 270: ff 75 dc    pushl	[ebp-36]        ; (local 2)
 273: 52          pushl	edx
 274: 50          pushl	eax
 275: 8b 5e 52    movl	ebx,[esi+82]    ; PNPOLY
 278: b1 05       movb	cl,$5
 280: ff d7       call	*edi
 282: 3b f8       cmpl	edi,eax
 284: 74 0f       jz	301
 286: 8b 4e 42    movl	ecx,[esi+66]    ; COUNT
 289: 8b 59 0d    movl	ebx,[ecx+13]
 292: 83 c3 04    addl	ebx,$4
 295: 8b 56 42    movl	edx,[esi+66]    ; COUNT
 298: 89 5a 0d    movl	[edx+13],ebx
 301: ff 76 5a    pushl	[esi+90]        ; -0.5d0
 304: 8f 45 c4    popl	[ebp-60]        ; (local 8)
 307: ff 76 56    pushl	[esi+86]        ; 1.5d0
 310: 8f 45 c0    popl	[ebp-64]        ; (local 9)
 313: 8b 45 e4    movl	eax,[ebp-28]    ; (local 0)
 316: 8b 55 e0    movl	edx,[ebp-32]    ; (local 1)
 319: 83 c4 14    addl	esp,$20
 322: ff 75 c0    pushl	[ebp-64]        ; (local 9)
 325: ff 75 c4    pushl	[ebp-60]        ; (local 8)
 328: ff 75 dc    pushl	[ebp-36]        ; (local 2)
 331: 52          pushl	edx
 332: 50          pushl	eax
 333: 8b 5e 52    movl	ebx,[esi+82]    ; PNPOLY
 336: b1 05       movb	cl,$5
 338: ff d7       call	*edi
 340: 3b f8       cmpl	edi,eax
 342: 74 0f       jz	359
 344: 8b 4e 42    movl	ecx,[esi+66]    ; COUNT
 347: 8b 59 0d    movl	ebx,[ecx+13]
 350: 83 c3 04    addl	ebx,$4
 353: 8b 56 42    movl	edx,[esi+66]    ; COUNT
 356: 89 5a 0d    movl	[edx+13],ebx
 359: ff 76 5e    pushl	[esi+94]        ; 0.75d0
 362: 8f 45 bc    popl	[ebp-68]        ; (local 10)
 365: ff 76 62    pushl	[esi+98]        ; 2.25d0
 368: 8f 45 b8    popl	[ebp-72]        ; (local 11)
 371: 8b 45 e4    movl	eax,[ebp-28]    ; (local 0)
 374: 8b 55 e0    movl	edx,[ebp-32]    ; (local 1)
 377: 83 c4 14    addl	esp,$20
 380: ff 75 b8    pushl	[ebp-72]        ; (local 11)
 383: ff 75 bc    pushl	[ebp-68]        ; (local 10)
 386: ff 75 dc    pushl	[ebp-36]        ; (local 2)
 389: 52          pushl	edx
 390: 50          pushl	eax
 391: 8b 5e 52    movl	ebx,[esi+82]    ; PNPOLY
 394: b1 05       movb	cl,$5
 396: ff d7       call	*edi
 398: 3b f8       cmpl	edi,eax
 400: 74 0f       jz	417
 402: 8b 4e 42    movl	ecx,[esi+66]    ; COUNT
 405: 8b 59 0d    movl	ebx,[ecx+13]
 408: 83 c3 04    addl	ebx,$4
 411: 8b 56 42    movl	edx,[esi+66]    ; COUNT
 414: 89 5a 0d    movl	[edx+13],ebx
 417: ff 76 66    pushl	[esi+102]       ; 0.0d0
 420: 8f 45 b4    popl	[ebp-76]        ; (local 12)
 423: ff 76 6a    pushl	[esi+106]       ; 2.01d0
 426: 8f 45 b0    popl	[ebp-80]        ; (local 13)
 429: 8b 45 e4    movl	eax,[ebp-28]    ; (local 0)
 432: 8b 55 e0    movl	edx,[ebp-32]    ; (local 1)
 435: 83 c4 14    addl	esp,$20
 438: ff 75 b0    pushl	[ebp-80]        ; (local 13)
 441: ff 75 b4    pushl	[ebp-76]        ; (local 12)
 444: ff 75 dc    pushl	[ebp-36]        ; (local 2)
 447: 52          pushl	edx
 448: 50          pushl	eax
 449: 8b 5e 52    movl	ebx,[esi+82]    ; PNPOLY
 452: b1 05       movb	cl,$5
 454: ff d7       call	*edi
 456: 3b f8       cmpl	edi,eax
 458: 74 0f       jz	475
 460: 8b 4e 42    movl	ecx,[esi+66]    ; COUNT
 463: 8b 59 0d    movl	ebx,[ecx+13]
 466: 83 c3 04    addl	ebx,$4
 469: 8b 56 42    movl	edx,[esi+66]    ; COUNT
 472: 89 5a 0d    movl	[edx+13],ebx
 475: ff 76 5a    pushl	[esi+90]        ; -0.5d0
 478: 8f 45 ac    popl	[ebp-84]        ; (local 14)
 481: ff 76 6e    pushl	[esi+110]       ; 2.5d0
 484: 8f 45 a8    popl	[ebp-88]        ; (local 15)
 487: 8b 45 e4    movl	eax,[ebp-28]    ; (local 0)
 490: 8b 55 e0    movl	edx,[ebp-32]    ; (local 1)
 493: 83 c4 14    addl	esp,$20
 496: ff 75 a8    pushl	[ebp-88]        ; (local 15)
 499: ff 75 ac    pushl	[ebp-84]        ; (local 14)
 502: ff 75 dc    pushl	[ebp-36]        ; (local 2)
 505: 52          pushl	edx
 506: 50          pushl	eax
 507: 8b 5e 52    movl	ebx,[esi+82]    ; PNPOLY
 510: b1 05       movb	cl,$5
 512: ff d7       call	*edi
 514: 3b f8       cmpl	edi,eax
 516: 74 0f       jz	533
 518: 8b 4e 42    movl	ecx,[esi+66]    ; COUNT
 521: 8b 59 0d    movl	ebx,[ecx+13]
 524: 83 c3 04    addl	ebx,$4
 527: 8b 56 42    movl	edx,[esi+66]    ; COUNT
 530: 89 5a 0d    movl	[edx+13],ebx
 533: ff 76 72    pushl	[esi+114]       ; -1.0d0
 536: 8f 45 a4    popl	[ebp-92]        ; (local 16)
 539: ff 76 5a    pushl	[esi+90]        ; -0.5d0
 542: 8f 45 a0    popl	[ebp-96]        ; (local 17)
 545: 8b 45 e4    movl	eax,[ebp-28]    ; (local 0)
 548: 8b 55 e0    movl	edx,[ebp-32]    ; (local 1)
 551: 83 c4 14    addl	esp,$20
 554: ff 75 a0    pushl	[ebp-96]        ; (local 17)
 557: ff 75 a4    pushl	[ebp-92]        ; (local 16)
 560: ff 75 dc    pushl	[ebp-36]        ; (local 2)
 563: 52          pushl	edx
 564: 50          pushl	eax
 565: 8b 5e 52    movl	ebx,[esi+82]    ; PNPOLY
 568: b1 05       movb	cl,$5
 570: ff d7       call	*edi
 572: 3b f8       cmpl	edi,eax
 574: 74 0f       jz	591
 576: 8b 4e 42    movl	ecx,[esi+66]    ; COUNT
 579: 8b 59 0d    movl	ebx,[ecx+13]
 582: 83 c3 04    addl	ebx,$4
 585: 8b 56 42    movl	edx,[esi+66]    ; COUNT
 588: 89 5a 0d    movl	[edx+13],ebx
 591: ff 76 76    pushl	[esi+118]       ; -1.5d0
 594: 8f 45 9c    popl	[ebp-100]       ; (local 18)
 597: ff 76 4e    pushl	[esi+78]        ; 0.5d0
 600: 8f 45 98    popl	[ebp-104]       ; (local 19)
 603: 8b 45 e4    movl	eax,[ebp-28]    ; (local 0)
 606: 8b 55 e0    movl	edx,[ebp-32]    ; (local 1)
 609: 83 c4 14    addl	esp,$20
 612: ff 75 98    pushl	[ebp-104]       ; (local 19)
 615: ff 75 9c    pushl	[ebp-100]       ; (local 18)
 618: ff 75 dc    pushl	[ebp-36]        ; (local 2)
 621: 52          pushl	edx
 622: 50          pushl	eax
 623: 8b 5e 52    movl	ebx,[esi+82]    ; PNPOLY
 626: b1 05       movb	cl,$5
 628: ff d7       call	*edi
 630: 3b f8       cmpl	edi,eax
 632: 74 0f       jz	649
 634: 8b 4e 42    movl	ecx,[esi+66]    ; COUNT
 637: 8b 59 0d    movl	ebx,[ecx+13]
 640: 83 c3 04    addl	ebx,$4
 643: 8b 56 42    movl	edx,[esi+66]    ; COUNT
 646: 89 5a 0d    movl	[edx+13],ebx
 649: ff 76 7a    pushl	[esi+122]       ; -2.25d0
 652: 8f 45 94    popl	[ebp-108]       ; (local 20)
 655: ff 76 72    pushl	[esi+114]       ; -1.0d0
 658: 8f 45 90    popl	[ebp-112]       ; (local 21)
 661: 8b 45 e4    movl	eax,[ebp-28]    ; (local 0)
 664: 8b 55 e0    movl	edx,[ebp-32]    ; (local 1)
 667: 83 c4 14    addl	esp,$20
 670: ff 75 90    pushl	[ebp-112]       ; (local 21)
 673: ff 75 94    pushl	[ebp-108]       ; (local 20)
 676: ff 75 dc    pushl	[ebp-36]        ; (local 2)
 679: 52          pushl	edx
 680: 50          pushl	eax
 681: 8b 5e 52    movl	ebx,[esi+82]    ; PNPOLY
 684: b1 05       movb	cl,$5
 686: ff d7       call	*edi
 688: 3b f8       cmpl	edi,eax
 690: 74 0f       jz	707
 692: 8b 4e 42    movl	ecx,[esi+66]    ; COUNT
 695: 8b 59 0d    movl	ebx,[ecx+13]
 698: 83 c3 04    addl	ebx,$4
 701: 8b 56 42    movl	edx,[esi+66]    ; COUNT
 704: 89 5a 0d    movl	[edx+13],ebx
 707: ff 76 4e    pushl	[esi+78]        ; 0.5d0
 710: 8f 45 8c    popl	[ebp-116]       ; (local 22)
 713: ff 76 7e    pushl	[esi+126]       ; -0.25d0
 716: 8f 45 88    popl	[ebp-120]       ; (local 23)
 719: 8b 45 e4    movl	eax,[ebp-28]    ; (local 0)
 722: 8b 55 e0    movl	edx,[ebp-32]    ; (local 1)
 725: 83 c4 14    addl	esp,$20
 728: ff 75 88    pushl	[ebp-120]       ; (local 23)
 731: ff 75 8c    pushl	[ebp-116]       ; (local 22)
 734: ff 75 dc    pushl	[ebp-36]        ; (local 2)
 737: 52          pushl	edx
 738: 50          pushl	eax
 739: 8b 5e 52    movl	ebx,[esi+82]    ; PNPOLY
 742: b1 05       movb	cl,$5
 744: ff d7       call	*edi
 746: 3b f8       cmpl	edi,eax
 748: 74 0f       jz	765
 750: 8b 4e 42    movl	ecx,[esi+66]    ; COUNT
 753: 8b 59 0d    movl	ebx,[ecx+13]
 756: 83 c3 04    addl	ebx,$4
 759: 8b 56 42    movl	edx,[esi+66]    ; COUNT
 762: 89 5a 0d    movl	[edx+13],ebx
 765: ff 76 4e    pushl	[esi+78]        ; 0.5d0
 768: 8f 45 84    popl	[ebp-124]       ; (local 24)
 771: ff b6 82 00 pushl	[esi+130]       ; -1.25d0
      00 00 
 777: 8f 45 80    popl	[ebp-128]       ; (local 25)
 780: 8b 45 e4    movl	eax,[ebp-28]    ; (local 0)
 783: 8b 55 e0    movl	edx,[ebp-32]    ; (local 1)
 786: 83 c4 14    addl	esp,$20
 789: ff 75 80    pushl	[ebp-128]       ; (local 25)
 792: ff 75 84    pushl	[ebp-124]       ; (local 24)
 795: ff 75 dc    pushl	[ebp-36]        ; (local 2)
 798: 52          pushl	edx
 799: 50          pushl	eax
 800: 8b 5e 52    movl	ebx,[esi+82]    ; PNPOLY
 803: b1 05       movb	cl,$5
 805: ff d7       call	*edi
 807: 3b f8       cmpl	edi,eax
 809: 74 0f       jz	826
 811: 8b 4e 42    movl	ecx,[esi+66]    ; COUNT
 814: 8b 59 0d    movl	ebx,[ecx+13]
 817: 83 c3 04    addl	ebx,$4
 820: 8b 56 42    movl	edx,[esi+66]    ; COUNT
 823: 89 5a 0d    movl	[edx+13],ebx
 826: ff 76 5a    pushl	[esi+90]        ; -0.5d0
 829: 8f 85 7c ff popl	[ebp-132]       ; (local 26)
      ff ff 
 835: ff b6 86 00 pushl	[esi+134]       ; -2.5d0
      00 00 
 841: 8f 85 78 ff popl	[ebp-136]       ; (local 27)
      ff ff 
 847: 8b 45 e4    movl	eax,[ebp-28]    ; (local 0)
 850: 8b 55 e0    movl	edx,[ebp-32]    ; (local 1)
 853: 83 c4 14    addl	esp,$20
 856: ff b5 78 ff pushl	[ebp-136]       ; (local 27)
      ff ff 
 862: ff b5 7c ff pushl	[ebp-132]       ; (local 26)
      ff ff 
 868: ff 75 dc    pushl	[ebp-36]        ; (local 2)
 871: 52          pushl	edx
 872: 50          pushl	eax
 873: 8b 5e 52    movl	ebx,[esi+82]    ; PNPOLY
 876: b1 05       movb	cl,$5
 878: ff d7       call	*edi
 880: 3b f8       cmpl	edi,eax
 882: 74 0f       jz	899
 884: 8b 4e 42    movl	ecx,[esi+66]    ; COUNT
 887: 8b 59 0d    movl	ebx,[ecx+13]
 890: 83 c3 04    addl	ebx,$4
 893: 8b 56 42    movl	edx,[esi+66]    ; COUNT
 896: 89 5a 0d    movl	[edx+13],ebx
 899: 83 45 d8 04 addl	[ebp-40],$4     ; (local 3)
 903: 8b 5d d8    movl	ebx,[ebp-40]    ; (local 3)
 906: e9 f0 fc ff jmp 127
      ff 
 911: 90          nop
USER(10):