473d42:	51                   	push   %ecx
473d43:	dd 45 08             	fldl   0x8(%ebp)
473d46:	51                   	push   %ecx
473d47:	51                   	push   %ecx
473d48:	dd 1c 24             	fstpl  (%esp)
473d4b:	e8 35 02 00 00       	call   0x473f85
473d50:	59                   	pop    %ecx
473d51:	59                   	pop    %ecx
473d52:	a8 90                	test   $0x90,%al
473d54:	75 4a                	jne    0x473da0
473d56:	dd 45 08             	fldl   0x8(%ebp)
473d59:	51                   	push   %ecx
473d5a:	51                   	push   %ecx
473d5b:	dd 1c 24             	fstpl  (%esp)
473d5e:	e8 ac ef 00 00       	call   0x482d0f
473d63:	dd 45 08             	fldl   0x8(%ebp)
473d66:	dd e1                	fucom  %st(1)
473d68:	df e0                	fnstsw %ax
473d6a:	59                   	pop    %ecx
473d6b:	59                   	pop    %ecx
473d6c:	dd d9                	fstp   %st(1)
473d6e:	f6 c4 44             	test   $0x44,%ah
473d71:	7a 2b                	jp     0x473d9e
473d73:	dc 0d c8 e0 49 00    	fmull  0x49e0c8
473d79:	51                   	push   %ecx
473d7a:	51                   	push   %ecx
473d7b:	dd 55 f8             	fstl   -0x8(%ebp)
473d7e:	dd 1c 24             	fstpl  (%esp)
473d81:	e8 89 ef 00 00       	call   0x482d0f
473d86:	dd 45 f8             	fldl   -0x8(%ebp)
473d89:	da e9                	fucompp
473d8b:	df e0                	fnstsw %ax
473d8d:	59                   	pop    %ecx
473d8e:	59                   	pop    %ecx
473d8f:	f6 c4 44             	test   $0x44,%ah
473d92:	7a 05                	jp     0x473d99
473d94:	6a 02                	push   $0x2
473d96:	58                   	pop    %eax
473d97:	eb 09                	jmp    0x473da2
473d99:	33 c0                	xor    %eax,%eax
473d9b:	40                   	inc    %eax
473d9c:	eb 04                	jmp    0x473da2
473d9e:	dd d8                	fstp   %st(0)
473da0:	33 c0                	xor    %eax,%eax
473da2:	8b e5                	mov    %ebp,%esp
473da4:	5d                   	pop    %ebp
473da5:	c3                   	ret
473da6:	8b ff                	mov    %edi,%edi
473da8:	55                   	push   %ebp
473da9:	8b ec                	mov    %esp,%ebp
473dab:	dd 45 08             	fldl   0x8(%ebp)
473dae:	b9 00 00 f0 7f       	mov    $0x7ff00000,%ecx
473db3:	d9 e1                	fabs
473db5:	b8 00 00 f0 ff       	mov    $0xfff00000,%eax
473dba:	39 4d 14             	cmp    %ecx,0x14(%ebp)
473dbd:	75 3b                	jne    0x473dfa
473dbf:	83 7d 10 00          	cmpl   $0x0,0x10(%ebp)
473dc3:	75 75                	jne    0x473e3a
473dc5:	d9 e8                	fld1
473dc7:	d8 d1                	fcom   %st(1)
473dc9:	df e0                	fnstsw %ax
473dcb:	f6 c4 05             	test   $0x5,%ah
473dce:	7a 0f                	jp     0x473ddf
473dd0:	dd d9                	fstp   %st(1)
473dd2:	dd d8                	fstp   %st(0)
473dd4:	dd 05 d0 e0 49 00    	fldl   0x49e0d0
473dda:	e9 e9 00 00 00       	jmp    0x473ec8
473ddf:	d8 d1                	fcom   %st(1)
473de1:	df e0                	fnstsw %ax
473de3:	dd d9                	fstp   %st(1)
473de5:	f6 c4 41             	test   $0x41,%ah
473de8:	8b 45 18             	mov    0x18(%ebp),%eax
473deb:	0f 85 da 00 00 00    	jne    0x473ecb
473df1:	dd d8                	fstp   %st(0)
473df3:	d9 ee                	fldz
473df5:	e9 d1 00 00 00       	jmp    0x473ecb
473dfa:	39 45 14             	cmp    %eax,0x14(%ebp)
473dfd:	75 3b                	jne    0x473e3a
473dff:	83 7d 10 00          	cmpl   $0x0,0x10(%ebp)
473e03:	75 35                	jne    0x473e3a
473e05:	d9 e8                	fld1
473e07:	d8 d1                	fcom   %st(1)
473e09:	df e0                	fnstsw %ax
473e0b:	f6 c4 05             	test   $0x5,%ah
473e0e:	7a 0b                	jp     0x473e1b
473e10:	dd d9                	fstp   %st(1)
473e12:	dd d8                	fstp   %st(0)
473e14:	d9 ee                	fldz
473e16:	e9 ad 00 00 00       	jmp    0x473ec8
473e1b:	d8 d1                	fcom   %st(1)
473e1d:	df e0                	fnstsw %ax
473e1f:	dd d9                	fstp   %st(1)
473e21:	f6 c4 41             	test   $0x41,%ah
473e24:	8b 45 18             	mov    0x18(%ebp),%eax
473e27:	0f 85 9e 00 00 00    	jne    0x473ecb
473e2d:	dd d8                	fstp   %st(0)
473e2f:	dd 05 d0 e0 49 00    	fldl   0x49e0d0
473e35:	e9 91 00 00 00       	jmp    0x473ecb
473e3a:	dd d8                	fstp   %st(0)
473e3c:	39 4d 0c             	cmp    %ecx,0xc(%ebp)
473e3f:	75 2e                	jne    0x473e6f
473e41:	83 7d 08 00          	cmpl   $0x0,0x8(%ebp)
473e45:	0f 85 82 00 00 00    	jne    0x473ecd
473e4b:	d9 ee                	fldz
473e4d:	dd 45 10             	fldl   0x10(%ebp)
473e50:	d8 d1                	fcom   %st(1)
473e52:	df e0                	fnstsw %ax
473e54:	f6 c4 41             	test   $0x41,%ah
473e57:	0f 84 73 ff ff ff    	je     0x473dd0
473e5d:	d8 d9                	fcomp  %st(1)
473e5f:	df e0                	fnstsw %ax
473e61:	f6 c4 05             	test   $0x5,%ah
473e64:	8b 45 18             	mov    0x18(%ebp),%eax
473e67:	7b 62                	jnp    0x473ecb
473e69:	dd d8                	fstp   %st(0)
473e6b:	d9 e8                	fld1
473e6d:	eb 5c                	jmp    0x473ecb
473e6f:	39 45 0c             	cmp    %eax,0xc(%ebp)
473e72:	75 59                	jne    0x473ecd
473e74:	83 7d 08 00          	cmpl   $0x0,0x8(%ebp)
473e78:	75 53                	jne    0x473ecd
473e7a:	dd 45 10             	fldl   0x10(%ebp)
473e7d:	51                   	push   %ecx
473e7e:	51                   	push   %ecx
473e7f:	dd 1c 24             	fstpl  (%esp)
473e82:	e8 b5 fe ff ff       	call   0x473d3c
473e87:	d9 ee                	fldz
473e89:	dd 45 10             	fldl   0x10(%ebp)
473e8c:	59                   	pop    %ecx
473e8d:	59                   	pop    %ecx
473e8e:	d8 d1                	fcom   %st(1)
473e90:	8b c8                	mov    %eax,%ecx
473e92:	df e0                	fnstsw %ax
473e94:	f6 c4 41             	test   $0x41,%ah
473e97:	75 13                	jne    0x473eac
473e99:	dd d9                	fstp   %st(1)
473e9b:	dd d8                	fstp   %st(0)
473e9d:	dd 05 d0 e0 49 00    	fldl   0x49e0d0
473ea3:	83 f9 01             	cmp    $0x1,%ecx
473ea6:	75 20                	jne    0x473ec8
473ea8:	d9 e0                	fchs
473eaa:	eb 1c                	jmp    0x473ec8
473eac:	d8 d9                	fcomp  %st(1)
473eae:	df e0                	fnstsw %ax
473eb0:	f6 c4 05             	test   $0x5,%ah
473eb3:	7a 0f                	jp     0x473ec4
473eb5:	83 f9 01             	cmp    $0x1,%ecx
473eb8:	75 0e                	jne    0x473ec8
473eba:	dd d8                	fstp   %st(0)
473ebc:	dd 05 f0 e0 49 00    	fldl   0x49e0f0
473ec2:	eb 04                	jmp    0x473ec8
473ec4:	dd d8                	fstp   %st(0)
473ec6:	d9 e8                	fld1
473ec8:	8b 45 18             	mov    0x18(%ebp),%eax
473ecb:	dd 18                	fstpl  (%eax)
473ecd:	33 c0                	xor    %eax,%eax
473ecf:	5d                   	pop    %ebp
473ed0:	c3                   	ret
473ed1:	8b ff                	mov    %edi,%edi
473ed3:	55                   	push   %ebp
473ed4:	8b ec                	mov    %esp,%ebp
473ed6:	51                   	push   %ecx
473ed7:	51                   	push   %ecx
473ed8:	d9 ee                	fldz
473eda:	8b 45 08             	mov    0x8(%ebp),%eax
473edd:	dd 5d f8             	fstpl  -0x8(%ebp)
473ee0:	89 45 f8             	mov    %eax,-0x8(%ebp)
473ee3:	8b 45 0c             	mov    0xc(%ebp),%eax
473ee6:	8b c8                	mov    %eax,%ecx
473ee8:	f7 d1                	not    %ecx
473eea:	33 c8                	xor    %eax,%ecx
473eec:	f7 d0                	not    %eax
473eee:	81 e1 ff ff ff 7f    	and    $0x7fffffff,%ecx
473ef4:	33 c8                	xor    %eax,%ecx
473ef6:	89 4d fc             	mov    %ecx,-0x4(%ebp)
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