473ef9:	dd 45 f8             	fldl   -0x8(%ebp)
473efc:	8b e5                	mov    %ebp,%esp
473efe:	5d                   	pop    %ebp
473eff:	c3                   	ret
473f00:	8b ff                	mov    %edi,%edi
473f02:	55                   	push   %ebp
473f03:	8b ec                	mov    %esp,%ebp
473f05:	51                   	push   %ecx
473f06:	8b 45 08             	mov    0x8(%ebp),%eax
473f09:	8b c8                	mov    %eax,%ecx
473f0b:	f7 d1                	not    %ecx
473f0d:	33 c8                	xor    %eax,%ecx
473f0f:	f7 d0                	not    %eax
473f11:	81 e1 ff ff ff 7f    	and    $0x7fffffff,%ecx
473f17:	33 c8                	xor    %eax,%ecx
473f19:	89 4d fc             	mov    %ecx,-0x4(%ebp)
473f1c:	d9 45 fc             	flds   -0x4(%ebp)
473f1f:	8b e5                	mov    %ebp,%esp
473f21:	5d                   	pop    %ebp
473f22:	c3                   	ret
473f23:	8b ff                	mov    %edi,%edi
473f25:	55                   	push   %ebp
473f26:	8b ec                	mov    %esp,%ebp
473f28:	51                   	push   %ecx
473f29:	51                   	push   %ecx
473f2a:	d9 ee                	fldz
473f2c:	8b 45 08             	mov    0x8(%ebp),%eax
473f2f:	dd 5d f8             	fstpl  -0x8(%ebp)
473f32:	89 45 f8             	mov    %eax,-0x8(%ebp)
473f35:	8b 45 14             	mov    0x14(%ebp),%eax
473f38:	33 45 0c             	xor    0xc(%ebp),%eax
473f3b:	25 ff ff ff 7f       	and    $0x7fffffff,%eax
473f40:	33 45 14             	xor    0x14(%ebp),%eax
473f43:	89 45 fc             	mov    %eax,-0x4(%ebp)
473f46:	dd 45 f8             	fldl   -0x8(%ebp)
473f49:	8b e5                	mov    %ebp,%esp
473f4b:	5d                   	pop    %ebp
473f4c:	c3                   	ret
473f4d:	8b ff                	mov    %edi,%edi
473f4f:	55                   	push   %ebp
473f50:	8b ec                	mov    %esp,%ebp
473f52:	51                   	push   %ecx
473f53:	8b 45 0c             	mov    0xc(%ebp),%eax
473f56:	33 45 08             	xor    0x8(%ebp),%eax
473f59:	25 ff ff ff 7f       	and    $0x7fffffff,%eax
473f5e:	33 45 0c             	xor    0xc(%ebp),%eax
473f61:	89 45 fc             	mov    %eax,-0x4(%ebp)
473f64:	d9 45 fc             	flds   -0x4(%ebp)
473f67:	8b e5                	mov    %ebp,%esp
473f69:	5d                   	pop    %ebp
473f6a:	c3                   	ret
473f6b:	8b ff                	mov    %edi,%edi
473f6d:	55                   	push   %ebp
473f6e:	8b ec                	mov    %esp,%ebp
473f70:	ba f0 7f 00 00       	mov    $0x7ff0,%edx
473f75:	33 c0                	xor    %eax,%eax
473f77:	8b ca                	mov    %edx,%ecx
473f79:	66 23 4d 0e          	and    0xe(%ebp),%cx
473f7d:	66 3b ca             	cmp    %dx,%cx
473f80:	0f 95 c0             	setne  %al
473f83:	5d                   	pop    %ebp
473f84:	c3                   	ret
473f85:	8b ff                	mov    %edi,%edi
473f87:	55                   	push   %ebp
473f88:	8b ec                	mov    %esp,%ebp
473f8a:	66 8b 4d 0e          	mov    0xe(%ebp),%cx
473f8e:	ba f0 7f 00 00       	mov    $0x7ff0,%edx
473f93:	66 8b c1             	mov    %cx,%ax
473f96:	66 23 c2             	and    %dx,%ax
473f99:	66 3b c2             	cmp    %dx,%ax
473f9c:	75 33                	jne    0x473fd1
473f9e:	dd 45 08             	fldl   0x8(%ebp)
473fa1:	51                   	push   %ecx
473fa2:	51                   	push   %ecx
473fa3:	dd 1c 24             	fstpl  (%esp)
473fa6:	e8 32 03 00 00       	call   0x4742dd
473fab:	59                   	pop    %ecx
473fac:	59                   	pop    %ecx
473fad:	83 e8 01             	sub    $0x1,%eax
473fb0:	74 18                	je     0x473fca
473fb2:	83 e8 01             	sub    $0x1,%eax
473fb5:	74 0e                	je     0x473fc5
473fb7:	83 e8 01             	sub    $0x1,%eax
473fba:	74 05                	je     0x473fc1
473fbc:	33 c0                	xor    %eax,%eax
473fbe:	40                   	inc    %eax
473fbf:	5d                   	pop    %ebp
473fc0:	c3                   	ret
473fc1:	6a 02                	push   $0x2
473fc3:	eb 02                	jmp    0x473fc7
473fc5:	6a 04                	push   $0x4
473fc7:	58                   	pop    %eax
473fc8:	5d                   	pop    %ebp
473fc9:	c3                   	ret
473fca:	b8 00 02 00 00       	mov    $0x200,%eax
473fcf:	5d                   	pop    %ebp
473fd0:	c3                   	ret
473fd1:	0f b7 c9             	movzwl %cx,%ecx
473fd4:	81 e1 00 80 00 00    	and    $0x8000,%ecx
473fda:	66 85 c0             	test   %ax,%ax
473fdd:	75 1e                	jne    0x473ffd
473fdf:	f7 45 0c ff ff 0f 00 	testl  $0xfffff,0xc(%ebp)
473fe6:	75 06                	jne    0x473fee
473fe8:	83 7d 08 00          	cmpl   $0x0,0x8(%ebp)
473fec:	74 0f                	je     0x473ffd
473fee:	f7 d9                	neg    %ecx
473ff0:	1b c9                	sbb    %ecx,%ecx
473ff2:	83 e1 90             	and    $0xffffff90,%ecx
473ff5:	8d 81 80 00 00 00    	lea    0x80(%ecx),%eax
473ffb:	5d                   	pop    %ebp
473ffc:	c3                   	ret
473ffd:	dd 45 08             	fldl   0x8(%ebp)
474000:	d9 ee                	fldz
474002:	da e9                	fucompp
474004:	df e0                	fnstsw %ax
474006:	f6 c4 44             	test   $0x44,%ah
474009:	7a 0c                	jp     0x474017
47400b:	f7 d9                	neg    %ecx
47400d:	1b c9                	sbb    %ecx,%ecx
47400f:	83 e1 e0             	and    $0xffffffe0,%ecx
474012:	8d 41 40             	lea    0x40(%ecx),%eax
474015:	5d                   	pop    %ebp
474016:	c3                   	ret
474017:	f7 d9                	neg    %ecx
474019:	1b c9                	sbb    %ecx,%ecx
47401b:	81 e1 08 ff ff ff    	and    $0xffffff08,%ecx
474021:	8d 81 00 01 00 00    	lea    0x100(%ecx),%eax
474027:	5d                   	pop    %ebp
474028:	c3                   	ret
474029:	8b ff                	mov    %edi,%edi
47402b:	55                   	push   %ebp
47402c:	8b ec                	mov    %esp,%ebp
47402e:	66 8b 45 0e          	mov    0xe(%ebp),%ax
474032:	ba f8 7f 00 00       	mov    $0x7ff8,%edx
474037:	66 23 c2             	and    %dx,%ax
47403a:	8d 4a f8             	lea    -0x8(%edx),%ecx
47403d:	66 3b c1             	cmp    %cx,%ax
474040:	75 0f                	jne    0x474051
474042:	f7 45 0c ff ff 07 00 	testl  $0x7ffff,0xc(%ebp)
474049:	75 0b                	jne    0x474056
47404b:	83 7d 08 00          	cmpl   $0x0,0x8(%ebp)
47404f:	75 05                	jne    0x474056
474051:	66 3b c2             	cmp    %dx,%ax
474054:	75 05                	jne    0x47405b
474056:	33 c0                	xor    %eax,%eax
474058:	40                   	inc    %eax
474059:	5d                   	pop    %ebp
47405a:	c3                   	ret
47405b:	33 c0                	xor    %eax,%eax
47405d:	5d                   	pop    %ebp
47405e:	c3                   	ret
47405f:	8b ff                	mov    %edi,%edi
474061:	55                   	push   %ebp
474062:	8b ec                	mov    %esp,%ebp
474064:	83 ec 0c             	sub    $0xc,%esp
474067:	56                   	push   %esi
474068:	57                   	push   %edi
474069:	bf ff ff 00 00       	mov    $0xffff,%edi
47406e:	57                   	push   %edi
47406f:	68 3f 13 00 00       	push   $0x133f
474074:	e8 14 04 00 00       	call   0x47448d
474079:	dd 45 08             	fldl   0x8(%ebp)
47407c:	8b f0                	mov    %eax,%esi
47407e:	59                   	pop    %ecx
47407f:	59                   	pop    %ecx
474080:	0f b7 4d 0e          	movzwl 0xe(%ebp),%ecx
474084:	b8 f0 7f 00 00       	mov    $0x7ff0,%eax
474089:	23 c8                	and    %eax,%ecx
47408b:	66 3b c8             	cmp    %ax,%cx
47408e:	75 4c                	jne    0x4740dc
474090:	51                   	push   %ecx
474091:	51                   	push   %ecx
474092:	dd 1c 24             	fstpl  (%esp)
474095:	e8 43 02 00 00       	call   0x4742dd
47409a:	59                   	pop    %ecx
47409b:	59                   	pop    %ecx
47409c:	85 c0                	test   %eax,%eax
47409e:	7e 0a                	jle    0x4740aa
4740a0:	83 f8 02             	cmp    $0x2,%eax
4740a3:	7e 29                	jle    0x4740ce
4740a5:	83 f8 03             	cmp    $0x3,%eax
4740a8:	74 2d                	je     0x4740d7
4740aa:	dd 45 08             	fldl   0x8(%ebp)
4740ad:	dd 05 50 ca 49 00    	fldl   0x49ca50
4740b3:	56                   	push   %esi
4740b4:	83 ec 10             	sub    $0x10,%esp
4740b7:	d8 c1                	fadd   %st(1),%st
4740b9:	dd 5c 24 08          	fstpl  0x8(%esp)
4740bd:	dd 1c 24             	fstpl  (%esp)
4740c0:	6a 25                	push   $0x25
4740c2:	6a 08                	push   $0x8
4740c4:	e8 51 99 ff ff       	call   0x46da1a
4740c9:	83 c4 1c             	add    $0x1c,%esp
4740cc:	eb 5c                	jmp    0x47412a
4740ce:	57                   	push   %edi
4740cf:	56                   	push   %esi
4740d0:	e8 b8 03 00 00       	call   0x47448d
4740d5:	59                   	pop    %ecx
4740d6:	59                   	pop    %ecx
4740d7:	dd 45 08             	fldl   0x8(%ebp)
4740da:	eb 4e                	jmp    0x47412a
4740dc:	d9 ee                	fldz
4740de:	dd e9                	fucomp %st(1)
4740e0:	df e0                	fnstsw %ax
4740e2:	f6 c4 44             	test   $0x44,%ah
4740e5:	7a 19                	jp     0x474100
4740e7:	dd 05 d0 e0 49 00    	fldl   0x49e0d0
4740ed:	56                   	push   %esi
4740ee:	83 ec 10             	sub    $0x10,%esp
4740f1:	d9 e0                	fchs
4740f3:	dd 5c 24 08          	fstpl  0x8(%esp)
4740f7:	dd 1c 24             	fstpl  (%esp)
4740fa:	6a 25                	push   $0x25
4740fc:	6a 04                	push   $0x4
4740fe:	eb c4                	jmp    0x4740c4
474100:	8d 45 fc             	lea    -0x4(%ebp),%eax
474103:	50                   	push   %eax
474104:	51                   	push   %ecx
474105:	51                   	push   %ecx
474106:	dd 1c 24             	fstpl  (%esp)
474109:	e8 8a 00 00 00       	call   0x474198
47410e:	8b 45 fc             	mov    -0x4(%ebp),%eax
474111:	dd d8                	fstp   %st(0)
474113:	48                   	dec    %eax
474114:	89 45 f8             	mov    %eax,-0x8(%ebp)
474117:	db 45 f8             	fildl  -0x8(%ebp)
47411a:	57                   	push   %edi
47411b:	56                   	push   %esi
47411c:	dd 5d f4             	fstpl  -0xc(%ebp)
47411f:	e8 69 03 00 00       	call   0x47448d
474124:	dd 45 f4             	fldl   -0xc(%ebp)
474127:	83 c4 14             	add    $0x14,%esp
47412a:	5f                   	pop    %edi
47412b:	5e                   	pop    %esi
47412c:	8b e5                	mov    %ebp,%esp
47412e:	5d                   	pop    %ebp
47412f:	c3                   	ret
474130:	8b ff                	mov    %edi,%edi
474132:	55                   	push   %ebp
474133:	8b ec                	mov    %esp,%ebp
474135:	dd 45 10             	fldl   0x10(%ebp)
474138:	83 ec 10             	sub    $0x10,%esp
47413b:	dd 5c 24 08          	fstpl  0x8(%esp)
47413f:	dd 45 08             	fldl   0x8(%ebp)
474142:	dd 1c 24             	fstpl  (%esp)
474145:	e8 db eb 00 00       	call   0x482d25
47414a:	83 c4 10             	add    $0x10,%esp
47414d:	5d                   	pop    %ebp
47414e:	c3                   	ret
47414f:	8b ff                	mov    %edi,%edi
474151:	55                   	push   %ebp
474152:	8b ec                	mov    %esp,%ebp
474154:	ff 75 10             	push   0x10(%ebp)
474157:	dd 45 08             	fldl   0x8(%ebp)
47415a:	51                   	push   %ecx
47415b:	51                   	push   %ecx
47415c:	dd 1c 24             	fstpl  (%esp)
47415f:	e8 95 fc fd ff       	call   0x453df9
474164:	83 c4 0c             	add    $0xc,%esp
474167:	5d                   	pop    %ebp
474168:	c3                   	ret
474169:	8b ff                	mov    %edi,%edi
47416b:	55                   	push   %ebp
47416c:	8b ec                	mov    %esp,%ebp
47416e:	0f b7 4d 0e          	movzwl 0xe(%ebp),%ecx
474172:	8b 45 10             	mov    0x10(%ebp),%eax
474175:	dd 45 08             	fldl   0x8(%ebp)
474178:	05 02 fc ff ff       	add    $0xfffffc02,%eax
47417d:	c1 e9 04             	shr    $0x4,%ecx
474180:	81 e1 ff 07 00 00    	and    $0x7ff,%ecx
474186:	03 c1                	add    %ecx,%eax
474188:	50                   	push   %eax
474189:	51                   	push   %ecx
47418a:	51                   	push   %ecx
47418b:	dd 1c 24             	fstpl  (%esp)
47418e:	e8 1b 01 00 00       	call   0x4742ae
474193:	83 c4 0c             	add    $0xc,%esp
474196:	5d                   	pop    %ebp
474197:	c3                   	ret
474198:	8b ff                	mov    %edi,%edi
47419a:	55                   	push   %ebp
47419b:	8b ec                	mov    %esp,%ebp
47419d:	dd 45 08             	fldl   0x8(%ebp)
4741a0:	d9 ee                	fldz
4741a2:	dd e1                	fucom  %st(1)
4741a4:	df e0                	fnstsw %ax
4741a6:	57                   	push   %edi
4741a7:	f6 c4 44             	test   $0x44,%ah
4741aa:	7a 09                	jp     0x4741b5
4741ac:	dd d9                	fstp   %st(1)
4741ae:	33 ff                	xor    %edi,%edi
4741b0:	e9 af 00 00 00       	jmp    0x474264
4741b5:	56                   	push   %esi
4741b6:	66 8b 75 0e          	mov    0xe(%ebp),%si
4741ba:	0f b7 c6             	movzwl %si,%eax
4741bd:	a9 f0 7f 00 00       	test   $0x7ff0,%eax
4741c2:	75 7c                	jne    0x474240
4741c4:	8b 4d 0c             	mov    0xc(%ebp),%ecx
4741c7:	8b 55 08             	mov    0x8(%ebp),%edx
4741ca:	f7 c1 ff ff 0f 00    	test   $0xfffff,%ecx
4741d0:	75 04                	jne    0x4741d6
4741d2:	85 d2                	test   %edx,%edx
4741d4:	74 6a                	je     0x474240
4741d6:	de d9                	fcompp
4741d8:	bf 03 fc ff ff       	mov    $0xfffffc03,%edi
4741dd:	df e0                	fnstsw %ax
4741df:	f6 c4 41             	test   $0x41,%ah
4741e2:	75 05                	jne    0x4741e9
4741e4:	33 c0                	xor    %eax,%eax
4741e6:	40                   	inc    %eax
4741e7:	eb 02                	jmp    0x4741eb
4741e9:	33 c0                	xor    %eax,%eax
4741eb:	f6 45 0e 10          	testb  $0x10,0xe(%ebp)
4741ef:	75 1f                	jne    0x474210
4741f1:	03 c9                	add    %ecx,%ecx
4741f3:	89 4d 0c             	mov    %ecx,0xc(%ebp)
4741f6:	85 d2                	test   %edx,%edx
4741f8:	79 06                	jns    0x474200
4741fa:	83 c9 01             	or     $0x1,%ecx
4741fd:	89 4d 0c             	mov    %ecx,0xc(%ebp)
474200:	03 d2                	add    %edx,%edx
474202:	4f                   	dec    %edi
474203:	f6 45 0e 10          	testb  $0x10,0xe(%ebp)
474207:	74 e8                	je     0x4741f1
474209:	66 8b 75 0e          	mov    0xe(%ebp),%si
47420d:	89 55 08             	mov    %edx,0x8(%ebp)
474210:	b9 ef ff 00 00       	mov    $0xffef,%ecx
474215:	66 23 f1             	and    %cx,%si
474218:	66 89 75 0e          	mov    %si,0xe(%ebp)
47421c:	85 c0                	test   %eax,%eax
47421e:	74 0c                	je     0x47422c
474220:	b8 00 80 00 00       	mov    $0x8000,%eax
474225:	66 0b f0             	or     %ax,%si
474228:	66 89 75 0e          	mov    %si,0xe(%ebp)
47422c:	dd 45 08             	fldl   0x8(%ebp)
47422f:	6a 00                	push   $0x0
474231:	51                   	push   %ecx
474232:	51                   	push   %ecx
474233:	dd 1c 24             	fstpl  (%esp)
474236:	e8 73 00 00 00       	call   0x4742ae
47423b:	83 c4 0c             	add    $0xc,%esp
47423e:	eb 23                	jmp    0x474263
474240:	6a 00                	push   $0x0
474242:	51                   	push   %ecx
474243:	dd d8                	fstp   %st(0)
474245:	51                   	push   %ecx
474246:	dd 1c 24             	fstpl  (%esp)
474249:	e8 60 00 00 00       	call   0x4742ae
47424e:	0f b7 fe             	movzwl %si,%edi
474251:	83 c4 0c             	add    $0xc,%esp