41580a:	85 d2                	test   %edx,%edx
41580c:	74 68                	je     0x415876
41580e:	de d9                	fcompp
415810:	be 03 fc ff ff       	mov    $0xfffffc03,%esi
415815:	df e0                	fnstsw %ax
415817:	53                   	push   %ebx
415818:	33 db                	xor    %ebx,%ebx
41581a:	f6 c4 41             	test   $0x41,%ah
41581d:	75 01                	jne    0x415820
41581f:	43                   	inc    %ebx
415820:	f6 45 0e 10          	testb  $0x10,0xe(%ebp)
415824:	75 1f                	jne    0x415845
415826:	03 c9                	add    %ecx,%ecx
415828:	89 4d 0c             	mov    %ecx,0xc(%ebp)
41582b:	85 d2                	test   %edx,%edx
41582d:	79 06                	jns    0x415835
41582f:	83 c9 01             	or     $0x1,%ecx
415832:	89 4d 0c             	mov    %ecx,0xc(%ebp)
415835:	03 d2                	add    %edx,%edx
415837:	4e                   	dec    %esi
415838:	f6 45 0e 10          	testb  $0x10,0xe(%ebp)
41583c:	74 e8                	je     0x415826
41583e:	66 8b 7d 0e          	mov    0xe(%ebp),%di
415842:	89 55 08             	mov    %edx,0x8(%ebp)
415845:	b8 ef ff 00 00       	mov    $0xffef,%eax
41584a:	66 23 f8             	and    %ax,%di
41584d:	85 db                	test   %ebx,%ebx
41584f:	0f b7 c7             	movzwl %di,%eax
415852:	66 89 7d 0e          	mov    %di,0xe(%ebp)
415856:	5b                   	pop    %ebx
415857:	74 09                	je     0x415862
415859:	0d 00 80 00 00       	or     $0x8000,%eax
41585e:	66 89 45 0e          	mov    %ax,0xe(%ebp)
415862:	dd 45 08             	fldl   0x8(%ebp)
415865:	6a 00                	push   $0x0
415867:	51                   	push   %ecx
415868:	51                   	push   %ecx
415869:	dd 1c 24             	fstpl  (%esp)
41586c:	e8 31 00 00 00       	call   0x4158a2
415871:	83 c4 0c             	add    $0xc,%esp
415874:	eb 23                	jmp    0x415899
415876:	6a 00                	push   $0x0
415878:	51                   	push   %ecx
415879:	dd d8                	fstp   %st(0)
41587b:	51                   	push   %ecx
41587c:	dd 1c 24             	fstpl  (%esp)
41587f:	e8 1e 00 00 00       	call   0x4158a2
415884:	0f b7 f7             	movzwl %di,%esi
415887:	83 c4 0c             	add    $0xc,%esp
41588a:	c1 ee 04             	shr    $0x4,%esi
41588d:	81 e6 ff 07 00 00    	and    $0x7ff,%esi
415893:	81 ee fe 03 00 00    	sub    $0x3fe,%esi
415899:	5f                   	pop    %edi
41589a:	8b 45 10             	mov    0x10(%ebp),%eax
41589d:	89 30                	mov    %esi,(%eax)
41589f:	5e                   	pop    %esi
4158a0:	5d                   	pop    %ebp
4158a1:	c3                   	ret
4158a2:	8b ff                	mov    %edi,%edi
4158a4:	55                   	push   %ebp
4158a5:	8b ec                	mov    %esp,%ebp
4158a7:	51                   	push   %ecx
4158a8:	51                   	push   %ecx
4158a9:	8b 4d 10             	mov    0x10(%ebp),%ecx
4158ac:	0f b7 45 0e          	movzwl 0xe(%ebp),%eax
4158b0:	dd 45 08             	fldl   0x8(%ebp)
4158b3:	25 0f 80 00 00       	and    $0x800f,%eax
4158b8:	dd 5d f8             	fstpl  -0x8(%ebp)
4158bb:	8d 89 fe 03 00 00    	lea    0x3fe(%ecx),%ecx
4158c1:	c1 e1 04             	shl    $0x4,%ecx
4158c4:	0b c8                	or     %eax,%ecx
4158c6:	66 89 4d fe          	mov    %cx,-0x2(%ebp)
4158ca:	dd 45 f8             	fldl   -0x8(%ebp)
4158cd:	c9                   	leave
4158ce:	c3                   	ret
4158cf:	8b ff                	mov    %edi,%edi
4158d1:	55                   	push   %ebp
4158d2:	8b ec                	mov    %esp,%ebp
4158d4:	81 7d 0c 00 00 f0 7f 	cmpl   $0x7ff00000,0xc(%ebp)
4158db:	8b 45 08             	mov    0x8(%ebp),%eax
4158de:	75 07                	jne    0x4158e7
4158e0:	85 c0                	test   %eax,%eax
4158e2:	75 15                	jne    0x4158f9
4158e4:	40                   	inc    %eax
4158e5:	5d                   	pop    %ebp
4158e6:	c3                   	ret
4158e7:	81 7d 0c 00 00 f0 ff 	cmpl   $0xfff00000,0xc(%ebp)
4158ee:	75 09                	jne    0x4158f9
4158f0:	85 c0                	test   %eax,%eax
4158f2:	75 05                	jne    0x4158f9
4158f4:	6a 02                	push   $0x2
4158f6:	58                   	pop    %eax
4158f7:	5d                   	pop    %ebp
4158f8:	c3                   	ret
4158f9:	66 8b 4d 0e          	mov    0xe(%ebp),%cx
4158fd:	ba f8 7f 00 00       	mov    $0x7ff8,%edx
415902:	66 23 ca             	and    %dx,%cx
415905:	66 3b ca             	cmp    %dx,%cx
415908:	75 04                	jne    0x41590e
41590a:	6a 03                	push   $0x3
41590c:	eb e8                	jmp    0x4158f6
41590e:	ba f0 7f 00 00       	mov    $0x7ff0,%edx
415913:	66 3b ca             	cmp    %dx,%cx
415916:	75 11                	jne    0x415929
415918:	f7 45 0c ff ff 07 00 	testl  $0x7ffff,0xc(%ebp)
41591f:	75 04                	jne    0x415925
415921:	85 c0                	test   %eax,%eax
415923:	74 04                	je     0x415929
415925:	6a 04                	push   $0x4
415927:	eb cd                	jmp    0x4158f6
415929:	33 c0                	xor    %eax,%eax
41592b:	5d                   	pop    %ebp
41592c:	c3                   	ret
41592d:	6a 08                	push   $0x8
41592f:	68 38 18 43 00       	push   $0x431838
415934:	e8 87 26 ff ff       	call   0x407fc0
415939:	83 3d 64 45 43 00 01 	cmpl   $0x1,0x434564
415940:	7c 5b                	jl     0x41599d
415942:	8b 45 08             	mov    0x8(%ebp),%eax
415945:	a8 40                	test   $0x40,%al
415947:	74 4a                	je     0x415993
415949:	83 3d 98 32 43 00 00 	cmpl   $0x0,0x433298
415950:	74 41                	je     0x415993
415952:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
415956:	0f ae 55 08          	ldmxcsr 0x8(%ebp)
41595a:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
415961:	eb 3a                	jmp    0x41599d
415963:	8b 45 ec             	mov    -0x14(%ebp),%eax
415966:	8b 00                	mov    (%eax),%eax
415968:	81 38 05 00 00 c0    	cmpl   $0xc0000005,(%eax)
41596e:	74 0b                	je     0x41597b
415970:	81 38 1d 00 00 c0    	cmpl   $0xc000001d,(%eax)
415976:	74 03                	je     0x41597b
415978:	33 c0                	xor    %eax,%eax
41597a:	c3                   	ret
41597b:	33 c0                	xor    %eax,%eax
41597d:	40                   	inc    %eax
41597e:	c3                   	ret
41597f:	8b 65 e8             	mov    -0x18(%ebp),%esp
415982:	83 25 98 32 43 00 00 	andl   $0x0,0x433298
415989:	83 65 08 bf          	andl   $0xffffffbf,0x8(%ebp)
41598d:	0f ae 55 08          	ldmxcsr 0x8(%ebp)
415991:	eb c7                	jmp    0x41595a
415993:	83 e0 bf             	and    $0xffffffbf,%eax
415996:	89 45 08             	mov    %eax,0x8(%ebp)
415999:	0f ae 55 08          	ldmxcsr 0x8(%ebp)
41599d:	8b 4d f0             	mov    -0x10(%ebp),%ecx
4159a0:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
4159a7:	59                   	pop    %ecx
4159a8:	5f                   	pop    %edi
4159a9:	5e                   	pop    %esi
4159aa:	5b                   	pop    %ebx
4159ab:	c9                   	leave
4159ac:	c3                   	ret
4159ad:	8b ff                	mov    %edi,%edi
4159af:	55                   	push   %ebp
4159b0:	8b ec                	mov    %esp,%ebp
4159b2:	51                   	push   %ecx
4159b3:	dd 7d fc             	fnstsw -0x4(%ebp)
4159b6:	db e2                	fnclex
4159b8:	0f bf 45 fc          	movswl -0x4(%ebp),%eax
4159bc:	c9                   	leave
4159bd:	c3                   	ret
4159be:	8b ff                	mov    %edi,%edi
4159c0:	55                   	push   %ebp
4159c1:	8b ec                	mov    %esp,%ebp
4159c3:	51                   	push   %ecx
4159c4:	51                   	push   %ecx
4159c5:	9b d9 7d fc          	fstcw  -0x4(%ebp)
4159c9:	8b 4d 0c             	mov    0xc(%ebp),%ecx
4159cc:	8b 45 08             	mov    0x8(%ebp),%eax
4159cf:	f7 d1                	not    %ecx
4159d1:	66 23 4d fc          	and    -0x4(%ebp),%cx
4159d5:	23 45 0c             	and    0xc(%ebp),%eax
4159d8:	66 0b c8             	or     %ax,%cx
4159db:	66 89 4d f8          	mov    %cx,-0x8(%ebp)
4159df:	d9 6d f8             	fldcw  -0x8(%ebp)
4159e2:	0f bf 45 fc          	movswl -0x4(%ebp),%eax
4159e6:	c9                   	leave
4159e7:	c3                   	ret
4159e8:	8b ff                	mov    %edi,%edi
4159ea:	55                   	push   %ebp
4159eb:	8b ec                	mov    %esp,%ebp
4159ed:	8b 4d 08             	mov    0x8(%ebp),%ecx
4159f0:	83 ec 0c             	sub    $0xc,%esp
4159f3:	f6 c1 01             	test   $0x1,%cl
4159f6:	74 0a                	je     0x415a02
4159f8:	db 2d 08 84 42 00    	fldt   0x428408
4159fe:	db 5d fc             	fistpl -0x4(%ebp)
415a01:	9b                   	fwait
415a02:	f6 c1 08             	test   $0x8,%cl
415a05:	74 10                	je     0x415a17
415a07:	9b df e0             	fstsw  %ax
415a0a:	db 2d 08 84 42 00    	fldt   0x428408
415a10:	dd 5d f4             	fstpl  -0xc(%ebp)
415a13:	9b 9b df e0          	fstsw  %ax
415a17:	f6 c1 10             	test   $0x10,%cl
415a1a:	74 0a                	je     0x415a26
415a1c:	db 2d 14 84 42 00    	fldt   0x428414
415a22:	dd 5d f4             	fstpl  -0xc(%ebp)
415a25:	9b                   	fwait
415a26:	f6 c1 04             	test   $0x4,%cl
415a29:	74 09                	je     0x415a34
415a2b:	d9 ee                	fldz
415a2d:	d9 e8                	fld1
415a2f:	de f1                	fdivp  %st,%st(1)
415a31:	dd d8                	fstp   %st(0)
415a33:	9b                   	fwait
415a34:	f6 c1 20             	test   $0x20,%cl
415a37:	74 06                	je     0x415a3f
415a39:	d9 eb                	fldpi
415a3b:	dd 5d f4             	fstpl  -0xc(%ebp)
415a3e:	9b                   	fwait
415a3f:	c9                   	leave
415a40:	c3                   	ret
415a41:	8b ff                	mov    %edi,%edi
415a43:	55                   	push   %ebp
415a44:	8b ec                	mov    %esp,%ebp
415a46:	51                   	push   %ecx
415a47:	9b dd 7d fc          	fstsw  -0x4(%ebp)
415a4b:	0f bf 45 fc          	movswl -0x4(%ebp),%eax
415a4f:	c9                   	leave
415a50:	c3                   	ret
415a51:	8b ff                	mov    %edi,%edi
415a53:	55                   	push   %ebp
415a54:	8b ec                	mov    %esp,%ebp
415a56:	b8 ff ff 00 00       	mov    $0xffff,%eax
415a5b:	83 ec 14             	sub    $0x14,%esp
415a5e:	66 39 45 08          	cmp    %ax,0x8(%ebp)
415a62:	0f 84 89 00 00 00    	je     0x415af1
415a68:	ff 75 0c             	push   0xc(%ebp)
415a6b:	8d 4d ec             	lea    -0x14(%ebp),%ecx
415a6e:	e8 0b 62 ff ff       	call   0x40bc7e
415a73:	66 8b 4d 08          	mov    0x8(%ebp),%cx
415a77:	ba 00 01 00 00       	mov    $0x100,%edx
415a7c:	66 3b ca             	cmp    %dx,%cx
415a7f:	73 24                	jae    0x415aa5
415a81:	0f b6 d1             	movzbl %cl,%edx
415a84:	f6 04 55 e2 66 42 00 	testb  $0x1,0x4266e2(,%edx,2)
415a8b:	01
415a8c:	74 0f                	je     0x415a9d
415a8e:	8b 45 f0             	mov    -0x10(%ebp),%eax
415a91:	8b 80 94 00 00 00    	mov    0x94(%eax),%eax
415a97:	0f b6 04 10          	movzbl (%eax,%edx,1),%eax
415a9b:	eb 03                	jmp    0x415aa0
415a9d:	0f b6 c1             	movzbl %cl,%eax
415aa0:	0f b7 c0             	movzwl %ax,%eax
415aa3:	eb 10                	jmp    0x415ab5
415aa5:	8b 45 f0             	mov    -0x10(%ebp),%eax
415aa8:	8b 80 a8 00 00 00    	mov    0xa8(%eax),%eax
415aae:	85 c0                	test   %eax,%eax
415ab0:	75 08                	jne    0x415aba
415ab2:	0f b7 c1             	movzwl %cx,%eax
415ab5:	0f b7 c0             	movzwl %ax,%eax
415ab8:	eb 1e                	jmp    0x415ad8
415aba:	6a 01                	push   $0x1
415abc:	8d 4d fc             	lea    -0x4(%ebp),%ecx
415abf:	51                   	push   %ecx
415ac0:	6a 01                	push   $0x1
415ac2:	8d 4d 08             	lea    0x8(%ebp),%ecx
415ac5:	51                   	push   %ecx
415ac6:	52                   	push   %edx
415ac7:	50                   	push   %eax
415ac8:	e8 81 ab 00 00       	call   0x42064e
415acd:	83 c4 18             	add    $0x18,%esp
415ad0:	85 c0                	test   %eax,%eax
415ad2:	75 09                	jne    0x415add
415ad4:	0f b7 45 08          	movzwl 0x8(%ebp),%eax
415ad8:	0f b7 c0             	movzwl %ax,%eax
415adb:	eb 04                	jmp    0x415ae1
415add:	0f b7 45 fc          	movzwl -0x4(%ebp),%eax
415ae1:	80 7d f8 00          	cmpb   $0x0,-0x8(%ebp)
415ae5:	74 0a                	je     0x415af1
415ae7:	8b 4d ec             	mov    -0x14(%ebp),%ecx
415aea:	83 a1 50 03 00 00 fd 	andl   $0xfffffffd,0x350(%ecx)
415af1:	c9                   	leave
415af2:	c3                   	ret
415af3:	6a 0c                	push   $0xc
415af5:	68 58 18 43 00       	push   $0x431858
415afa:	e8 c1 24 ff ff       	call   0x407fc0
415aff:	83 65 e4 00          	andl   $0x0,-0x1c(%ebp)
415b03:	8b 45 08             	mov    0x8(%ebp),%eax
415b06:	ff 30                	push   (%eax)
415b08:	e8 6d 5a 00 00       	call   0x41b57a
415b0d:	59                   	pop    %ecx
415b0e:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
415b12:	8b 45 0c             	mov    0xc(%ebp),%eax
415b15:	8b 00                	mov    (%eax),%eax
415b17:	8b 30                	mov    (%eax),%esi
415b19:	8b d6                	mov    %esi,%edx
415b1b:	c1 fa 06             	sar    $0x6,%edx
415b1e:	8b c6                	mov    %esi,%eax
415b20:	83 e0 3f             	and    $0x3f,%eax
415b23:	6b c8 38             	imul   $0x38,%eax,%ecx
415b26:	8b 04 95 c0 4a 43 00 	mov    0x434ac0(,%edx,4),%eax
415b2d:	f6 44 08 28 01       	testb  $0x1,0x28(%eax,%ecx,1)
415b32:	74 0b                	je     0x415b3f
415b34:	56                   	push   %esi
415b35:	e8 d2 00 00 00       	call   0x415c0c
415b3a:	59                   	pop    %ecx
415b3b:	8b f0                	mov    %eax,%esi
415b3d:	eb 0e                	jmp    0x415b4d
415b3f:	e8 b7 92 ff ff       	call   0x40edfb
415b44:	c7 00 09 00 00 00    	movl   $0x9,(%eax)
415b4a:	83 ce ff             	or     $0xffffffff,%esi
415b4d:	89 75 e4             	mov    %esi,-0x1c(%ebp)
415b50:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
415b57:	e8 17 00 00 00       	call   0x415b73
415b5c:	8b c6                	mov    %esi,%eax
415b5e:	8b 4d f0             	mov    -0x10(%ebp),%ecx
415b61:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
415b68:	59                   	pop    %ecx
415b69:	5f                   	pop    %edi
415b6a:	5e                   	pop    %esi
415b6b:	5b                   	pop    %ebx
415b6c:	c9                   	leave
415b6d:	c2 0c 00             	ret    $0xc
415b70:	8b 75 e4             	mov    -0x1c(%ebp),%esi
415b73:	8b 45 10             	mov    0x10(%ebp),%eax
415b76:	ff 30                	push   (%eax)
415b78:	e8 b2 5a 00 00       	call   0x41b62f
415b7d:	59                   	pop    %ecx
415b7e:	c3                   	ret
415b7f:	8b ff                	mov    %edi,%edi
415b81:	55                   	push   %ebp
415b82:	8b ec                	mov    %esp,%ebp
415b84:	83 ec 10             	sub    $0x10,%esp
415b87:	56                   	push   %esi
415b88:	8b 75 08             	mov    0x8(%ebp),%esi
415b8b:	83 fe fe             	cmp    $0xfffffffe,%esi
415b8e:	75 15                	jne    0x415ba5
415b90:	e8 53 92 ff ff       	call   0x40ede8
415b95:	83 20 00             	andl   $0x0,(%eax)
415b98:	e8 5e 92 ff ff       	call   0x40edfb
415b9d:	c7 00 09 00 00 00    	movl   $0x9,(%eax)
415ba3:	eb 61                	jmp    0x415c06
415ba5:	85 f6                	test   %esi,%esi
415ba7:	78 45                	js     0x415bee
415ba9:	3b 35 c0 4c 43 00    	cmp    0x434cc0,%esi
415baf:	73 3d                	jae    0x415bee
415bb1:	8b c6                	mov    %esi,%eax
415bb3:	8b d6                	mov    %esi,%edx
415bb5:	83 e0 3f             	and    $0x3f,%eax
415bb8:	c1 fa 06             	sar    $0x6,%edx
415bbb:	6b c8 38             	imul   $0x38,%eax,%ecx
415bbe:	8b 04 95 c0 4a 43 00 	mov    0x434ac0(,%edx,4),%eax
415bc5:	f6 44 08 28 01       	testb  $0x1,0x28(%eax,%ecx,1)
415bca:	74 22                	je     0x415bee
415bcc:	8d 45 08             	lea    0x8(%ebp),%eax
415bcf:	89 75 f8             	mov    %esi,-0x8(%ebp)