449798:	8d 04 0a             	lea    (%edx,%ecx,1),%eax
44979b:	3b c3                	cmp    %ebx,%eax
44979d:	0f 42 c3             	cmovb  %ebx,%eax
4497a0:	89 45 e0             	mov    %eax,-0x20(%ebp)
4497a3:	3d aa aa aa 0a       	cmp    $0xaaaaaaa,%eax
4497a8:	0f 87 24 01 00 00    	ja     0x4498d2
4497ae:	8d 04 40             	lea    (%eax,%eax,2),%eax
4497b1:	c1 e0 03             	shl    $0x3,%eax
4497b4:	89 45 d4             	mov    %eax,-0x2c(%ebp)
4497b7:	3d 00 10 00 00       	cmp    $0x1000,%eax
4497bc:	72 27                	jb     0x4497e5
4497be:	8d 48 23             	lea    0x23(%eax),%ecx
4497c1:	3b c8                	cmp    %eax,%ecx
4497c3:	0f 86 09 01 00 00    	jbe    0x4498d2
4497c9:	51                   	push   %ecx
4497ca:	e8 73 78 19 00       	call   0x5e1042
4497cf:	83 c4 04             	add    $0x4,%esp
4497d2:	85 c0                	test   %eax,%eax
4497d4:	0f 84 02 01 00 00    	je     0x4498dc
4497da:	8d 70 23             	lea    0x23(%eax),%esi
4497dd:	83 e6 e0             	and    $0xffffffe0,%esi
4497e0:	89 46 fc             	mov    %eax,-0x4(%esi)
4497e3:	eb 16                	jmp    0x4497fb
4497e5:	85 c0                	test   %eax,%eax
4497e7:	74 10                	je     0x4497f9
4497e9:	50                   	push   %eax
4497ea:	e8 53 78 19 00       	call   0x5e1042
4497ef:	83 c4 04             	add    $0x4,%esp
4497f2:	89 45 e8             	mov    %eax,-0x18(%ebp)
4497f5:	8b f0                	mov    %eax,%esi
4497f7:	eb 05                	jmp    0x4497fe
4497f9:	33 f6                	xor    %esi,%esi
4497fb:	89 75 e8             	mov    %esi,-0x18(%ebp)
4497fe:	8b 45 ec             	mov    -0x14(%ebp),%eax
449801:	ff 75 dc             	push   -0x24(%ebp)
449804:	c7 45 fc 00 00 00 00 	movl   $0x0,-0x4(%ebp)
44980b:	8d 04 40             	lea    (%eax,%eax,2),%eax
44980e:	8d 0c c6             	lea    (%esi,%eax,8),%ecx
449811:	8d 41 18             	lea    0x18(%ecx),%eax
449814:	89 4d d0             	mov    %ecx,-0x30(%ebp)
449817:	89 45 ec             	mov    %eax,-0x14(%ebp)
44981a:	e8 61 ee fe ff       	call   0x438680
44981f:	8b 47 04             	mov    0x4(%edi),%eax
449822:	8b 55 e4             	mov    -0x1c(%ebp),%edx
449825:	8b 0f                	mov    (%edi),%ecx
449827:	3b d0                	cmp    %eax,%edx
449829:	75 04                	jne    0x44982f
44982b:	8b d6                	mov    %esi,%edx
44982d:	eb 15                	jmp    0x449844
44982f:	57                   	push   %edi
449830:	56                   	push   %esi
449831:	52                   	push   %edx
449832:	51                   	push   %ecx
449833:	e8 a8 03 00 00       	call   0x449be0
449838:	8b 4d e4             	mov    -0x1c(%ebp),%ecx
44983b:	83 c4 10             	add    $0x10,%esp
44983e:	8b 47 04             	mov    0x4(%edi),%eax
449841:	8b 55 ec             	mov    -0x14(%ebp),%edx
449844:	57                   	push   %edi
449845:	52                   	push   %edx
449846:	50                   	push   %eax
449847:	51                   	push   %ecx
449848:	e8 93 03 00 00       	call   0x449be0
44984d:	8b 0f                	mov    (%edi),%ecx
44984f:	83 c4 10             	add    $0x10,%esp
449852:	85 c9                	test   %ecx,%ecx
449854:	74 52                	je     0x4498a8
449856:	57                   	push   %edi
449857:	ff 77 04             	push   0x4(%edi)
44985a:	51                   	push   %ecx
44985b:	e8 b0 f2 ff ff       	call   0x448b10
449860:	8b 4f 08             	mov    0x8(%edi),%ecx
449863:	b8 ab aa aa 2a       	mov    $0x2aaaaaab,%eax
449868:	8b 1f                	mov    (%edi),%ebx
44986a:	83 c4 0c             	add    $0xc,%esp
44986d:	2b cb                	sub    %ebx,%ecx
44986f:	f7 e9                	imul   %ecx
449871:	c1 fa 02             	sar    $0x2,%edx
449874:	8b c2                	mov    %edx,%eax
449876:	c1 e8 1f             	shr    $0x1f,%eax
449879:	03 c2                	add    %edx,%eax
44987b:	8d 0c 40             	lea    (%eax,%eax,2),%ecx
44987e:	c1 e1 03             	shl    $0x3,%ecx
449881:	81 f9 00 10 00 00    	cmp    $0x1000,%ecx
449887:	72 12                	jb     0x44989b
449889:	8b 53 fc             	mov    -0x4(%ebx),%edx
44988c:	83 c1 23             	add    $0x23,%ecx
44988f:	2b da                	sub    %edx,%ebx
449891:	8d 43 fc             	lea    -0x4(%ebx),%eax
449894:	83 f8 1f             	cmp    $0x1f,%eax
449897:	77 43                	ja     0x4498dc
449899:	8b da                	mov    %edx,%ebx
44989b:	51                   	push   %ecx
44989c:	53                   	push   %ebx
44989d:	e8 d0 77 19 00       	call   0x5e1072
4498a2:	8b 5d d8             	mov    -0x28(%ebp),%ebx
4498a5:	83 c4 08             	add    $0x8,%esp
4498a8:	8b 45 d0             	mov    -0x30(%ebp),%eax
4498ab:	8d 0c 5b             	lea    (%ebx,%ebx,2),%ecx
4498ae:	8d 0c ce             	lea    (%esi,%ecx,8),%ecx
4498b1:	89 37                	mov    %esi,(%edi)
4498b3:	89 4f 04             	mov    %ecx,0x4(%edi)
4498b6:	8b 4d d4             	mov    -0x2c(%ebp),%ecx
4498b9:	03 ce                	add    %esi,%ecx
4498bb:	89 4f 08             	mov    %ecx,0x8(%edi)
4498be:	8b 4d f4             	mov    -0xc(%ebp),%ecx
4498c1:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
4498c8:	59                   	pop    %ecx
4498c9:	5f                   	pop    %edi
4498ca:	5e                   	pop    %esi
4498cb:	5b                   	pop    %ebx
4498cc:	8b e5                	mov    %ebp,%esp
4498ce:	5d                   	pop    %ebp
4498cf:	c2 08 00             	ret    $0x8
4498d2:	e8 09 b6 ff ff       	call   0x444ee0
4498d7:	e8 64 b7 ff ff       	call   0x445040
4498dc:	e8 4e 36 1a 00       	call   0x5ecf2f
4498e1:	8b 45 ec             	mov    -0x14(%ebp),%eax
4498e4:	8b 4d cc             	mov    -0x34(%ebp),%ecx
4498e7:	50                   	push   %eax
4498e8:	50                   	push   %eax
4498e9:	e8 62 07 00 00       	call   0x44a050
4498ee:	ff 75 e0             	push   -0x20(%ebp)
4498f1:	8b 4d cc             	mov    -0x34(%ebp),%ecx
4498f4:	ff 75 e8             	push   -0x18(%ebp)
4498f7:	e8 94 0a 00 00       	call   0x44a390
4498fc:	6a 00                	push   $0x0
4498fe:	6a 00                	push   $0x0
449900:	e8 2d 91 19 00       	call   0x5e2a32
449905:	cc                   	int3
449906:	cc                   	int3
449907:	cc                   	int3
449908:	cc                   	int3
449909:	cc                   	int3
44990a:	cc                   	int3
44990b:	cc                   	int3
44990c:	cc                   	int3
44990d:	cc                   	int3
44990e:	cc                   	int3
44990f:	cc                   	int3
449910:	55                   	push   %ebp
449911:	8b ec                	mov    %esp,%ebp
449913:	51                   	push   %ecx
449914:	8b 51 18             	mov    0x18(%ecx),%edx
449917:	23 55 10             	and    0x10(%ebp),%edx
44991a:	8b 41 0c             	mov    0xc(%ecx),%eax
44991d:	8b 49 04             	mov    0x4(%ecx),%ecx
449920:	8d 04 d0             	lea    (%eax,%edx,8),%eax
449923:	57                   	push   %edi
449924:	8b 78 04             	mov    0x4(%eax),%edi
449927:	3b f9                	cmp    %ecx,%edi
449929:	75 13                	jne    0x44993e
44992b:	8b 45 08             	mov    0x8(%ebp),%eax
44992e:	5f                   	pop    %edi
44992f:	89 08                	mov    %ecx,(%eax)
449931:	c7 40 04 00 00 00 00 	movl   $0x0,0x4(%eax)
449938:	8b e5                	mov    %ebp,%esp
44993a:	5d                   	pop    %ebp
44993b:	c2 0c 00             	ret    $0xc
44993e:	8b 55 0c             	mov    0xc(%ebp),%edx
449941:	8b 00                	mov    (%eax),%eax
449943:	53                   	push   %ebx
449944:	89 45 fc             	mov    %eax,-0x4(%ebp)
449947:	8b 5a 10             	mov    0x10(%edx),%ebx
44994a:	56                   	push   %esi
44994b:	0f 1f 44 00 00       	nopl   0x0(%eax,%eax,1)
449950:	83 7f 1c 08          	cmpl   $0x8,0x1c(%edi)
449954:	8d 47 08             	lea    0x8(%edi),%eax
449957:	72 03                	jb     0x44995c
449959:	8b 47 08             	mov    0x8(%edi),%eax
44995c:	83 7a 14 08          	cmpl   $0x8,0x14(%edx)
449960:	8b f2                	mov    %edx,%esi
449962:	72 02                	jb     0x449966
449964:	8b 32                	mov    (%edx),%esi
449966:	3b 5f 18             	cmp    0x18(%edi),%ebx
449969:	75 2f                	jne    0x44999a
44996b:	8b d3                	mov    %ebx,%edx
44996d:	85 db                	test   %ebx,%ebx
44996f:	74 13                	je     0x449984
449971:	2b f0                	sub    %eax,%esi
449973:	66 8b 0c 06          	mov    (%esi,%eax,1),%cx
449977:	66 3b 08             	cmp    (%eax),%cx
44997a:	75 1b                	jne    0x449997
44997c:	83 c0 02             	add    $0x2,%eax
44997f:	83 ea 01             	sub    $0x1,%edx
449982:	75 ef                	jne    0x449973
449984:	8b 45 08             	mov    0x8(%ebp),%eax
449987:	8b 0f                	mov    (%edi),%ecx
449989:	5e                   	pop    %esi
44998a:	5b                   	pop    %ebx
44998b:	89 78 04             	mov    %edi,0x4(%eax)
44998e:	89 08                	mov    %ecx,(%eax)
449990:	5f                   	pop    %edi
449991:	8b e5                	mov    %ebp,%esp
449993:	5d                   	pop    %ebp
449994:	c2 0c 00             	ret    $0xc
449997:	8b 55 0c             	mov    0xc(%ebp),%edx
44999a:	3b 7d fc             	cmp    -0x4(%ebp),%edi
44999d:	74 05                	je     0x4499a4
44999f:	8b 7f 04             	mov    0x4(%edi),%edi
4499a2:	eb ac                	jmp    0x449950
4499a4:	8b 45 08             	mov    0x8(%ebp),%eax
4499a7:	5e                   	pop    %esi
4499a8:	5b                   	pop    %ebx
4499a9:	89 38                	mov    %edi,(%eax)
4499ab:	c7 40 04 00 00 00 00 	movl   $0x0,0x4(%eax)
4499b2:	5f                   	pop    %edi
4499b3:	8b e5                	mov    %ebp,%esp
4499b5:	5d                   	pop    %ebp
4499b6:	c2 0c 00             	ret    $0xc
4499b9:	cc                   	int3
4499ba:	cc                   	int3
4499bb:	cc                   	int3
4499bc:	cc                   	int3
4499bd:	cc                   	int3
4499be:	cc                   	int3
4499bf:	cc                   	int3
4499c0:	55                   	push   %ebp
4499c1:	8b ec                	mov    %esp,%ebp
4499c3:	6a ff                	push   $0xffffffff
4499c5:	68 50 d0 64 00       	push   $0x64d050
4499ca:	64 a1 00 00 00 00    	mov    %fs:0x0,%eax
4499d0:	50                   	push   %eax
4499d1:	83 ec 18             	sub    $0x18,%esp
4499d4:	53                   	push   %ebx
4499d5:	56                   	push   %esi
4499d6:	57                   	push   %edi
4499d7:	a1 d4 89 72 00       	mov    0x7289d4,%eax
4499dc:	33 c5                	xor    %ebp,%eax
4499de:	50                   	push   %eax
4499df:	8d 45 f4             	lea    -0xc(%ebp),%eax
4499e2:	64 a3 00 00 00 00    	mov    %eax,%fs:0x0
4499e8:	8b f9                	mov    %ecx,%edi
4499ea:	89 7d e4             	mov    %edi,-0x1c(%ebp)
4499ed:	8b 45 0c             	mov    0xc(%ebp),%eax
4499f0:	8b 5d 08             	mov    0x8(%ebp),%ebx
4499f3:	89 45 f0             	mov    %eax,-0x10(%ebp)
4499f6:	89 45 ec             	mov    %eax,-0x14(%ebp)
4499f9:	83 78 14 08          	cmpl   $0x8,0x14(%eax)
4499fd:	72 05                	jb     0x449a04
4499ff:	8b 08                	mov    (%eax),%ecx
449a01:	89 4d ec             	mov    %ecx,-0x14(%ebp)
449a04:	8b 50 10             	mov    0x10(%eax),%edx
449a07:	be c5 9d 1c 81       	mov    $0x811c9dc5,%esi
449a0c:	b9 00 00 00 00       	mov    $0x0,%ecx
449a11:	03 d2                	add    %edx,%edx
449a13:	74 1a                	je     0x449a2f
449a15:	8b 7d ec             	mov    -0x14(%ebp),%edi
449a18:	0f b6 04 39          	movzbl (%ecx,%edi,1),%eax
449a1c:	41                   	inc    %ecx
449a1d:	33 c6                	xor    %esi,%eax
449a1f:	69 f0 93 01 00 01    	imul   $0x1000193,%eax,%esi
449a25:	3b ca                	cmp    %edx,%ecx
449a27:	72 ef                	jb     0x449a18
449a29:	8b 7d e4             	mov    -0x1c(%ebp),%edi
449a2c:	8b 45 f0             	mov    -0x10(%ebp),%eax
449a2f:	56                   	push   %esi
449a30:	50                   	push   %eax
449a31:	8d 45 e8             	lea    -0x18(%ebp),%eax
449a34:	8b cf                	mov    %edi,%ecx
449a36:	50                   	push   %eax
449a37:	e8 d4 fe ff ff       	call   0x449910
449a3c:	8b 45 ec             	mov    -0x14(%ebp),%eax
449a3f:	85 c0                	test   %eax,%eax
449a41:	74 0b                	je     0x449a4e
449a43:	89 03                	mov    %eax,(%ebx)
449a45:	c6 43 04 00          	movb   $0x0,0x4(%ebx)
449a49:	e9 66 01 00 00       	jmp    0x449bb4
449a4e:	81 7f 08 24 49 92 04 	cmpl   $0x4924924,0x8(%edi)
449a55:	0f 84 6f 01 00 00    	je     0x449bca
449a5b:	8d 47 04             	lea    0x4(%edi),%eax
449a5e:	89 45 dc             	mov    %eax,-0x24(%ebp)
449a61:	6a 38                	push   $0x38
449a63:	c7 45 fc 00 00 00 00 	movl   $0x0,-0x4(%ebp)
449a6a:	c7 45 e0 00 00 00 00 	movl   $0x0,-0x20(%ebp)
449a71:	e8 cc 75 19 00       	call   0x5e1042
449a76:	83 c4 04             	add    $0x4,%esp
449a79:	8b f8                	mov    %eax,%edi
449a7b:	89 7d e0             	mov    %edi,-0x20(%ebp)
449a7e:	ff 75 f0             	push   -0x10(%ebp)
449a81:	8d 4f 08             	lea    0x8(%edi),%ecx
449a84:	e8 f7 eb fe ff       	call   0x438680
449a89:	33 c9                	xor    %ecx,%ecx
449a8b:	c7 47 30 00 00 00 00 	movl   $0x0,0x30(%edi)
449a92:	c7 47 34 07 00 00 00 	movl   $0x7,0x34(%edi)
449a99:	66 89 4f 20          	mov    %cx,0x20(%edi)
449a9d:	8b 55 e4             	mov    -0x1c(%ebp),%edx
449aa0:	c7 45 fc 01 00 00 00 	movl   $0x1,-0x4(%ebp)
449aa7:	8b 42 08             	mov    0x8(%edx),%eax
449aaa:	40                   	inc    %eax
449aab:	f3 0f 10 1a          	movss  (%edx),%xmm3
449aaf:	66 0f 6e c0          	movd   %eax,%xmm0
449ab3:	f3 0f e6 c0          	cvtdq2pd %xmm0,%xmm0
449ab7:	c1 e8 1f             	shr    $0x1f,%eax
449aba:	f2 0f 58 04 c5 50 bb 	addsd  0x68bb50(,%eax,8),%xmm0
449ac1:	68 00
449ac3:	8b 42 1c             	mov    0x1c(%edx),%eax
449ac6:	89 45 f0             	mov    %eax,-0x10(%ebp)
449ac9:	66 0f 5a d0          	cvtpd2ps %xmm0,%xmm2
449acd:	66 0f 6e c0          	movd   %eax,%xmm0
449ad1:	f3 0f e6 c0          	cvtdq2pd %xmm0,%xmm0
449ad5:	c1 e8 1f             	shr    $0x1f,%eax
449ad8:	0f 28 ca             	movaps %xmm2,%xmm1
449adb:	f2 0f 58 04 c5 50 bb 	addsd  0x68bb50(,%eax,8),%xmm0
449ae2:	68 00
449ae4:	66 0f 5a c0          	cvtpd2ps %xmm0,%xmm0
449ae8:	f3 0f 5e c8          	divss  %xmm0,%xmm1
449aec:	0f 2f cb             	comiss %xmm3,%xmm1
449aef:	76 76                	jbe    0x449b67
449af1:	f3 0f 5e d3          	divss  %xmm3,%xmm2
449af5:	83 ec 08             	sub    $0x8,%esp
449af8:	0f 5a c2             	cvtps2pd %xmm2,%xmm0
449afb:	f2 0f 11 45 e8       	movsd  %xmm0,-0x18(%ebp)
449b00:	dd 45 e8             	fldl   -0x18(%ebp)
449b03:	dd 1c 24             	fstpl  (%esp)
449b06:	e8 85 4b 1a 00       	call   0x5ee690
449b0b:	dd 5d e8             	fstpl  -0x18(%ebp)
449b0e:	f2 0f 10 45 e8       	movsd  -0x18(%ebp),%xmm0
449b13:	83 c4 08             	add    $0x8,%esp
449b16:	66 0f 5a c0          	cvtpd2ps %xmm0,%xmm0
449b1a:	e8 31 7a 19 00       	call   0x5e1550
449b1f:	b9 08 00 00 00       	mov    $0x8,%ecx
449b24:	3b c1                	cmp    %ecx,%eax
449b26:	0f 47 c8             	cmova  %eax,%ecx
449b29:	8b 45 f0             	mov    -0x10(%ebp),%eax
449b2c:	3b c1                	cmp    %ecx,%eax
449b2e:	73 10                	jae    0x449b40
449b30:	3d 00 02 00 00       	cmp    $0x200,%eax
449b35:	73 07                	jae    0x449b3e
449b37:	c1 e0 03             	shl    $0x3,%eax
449b3a:	3b c1                	cmp    %ecx,%eax
449b3c:	73 02                	jae    0x449b40
449b3e:	8b c1                	mov    %ecx,%eax
449b40:	8b 4d e4             	mov    -0x1c(%ebp),%ecx
449b43:	50                   	push   %eax
449b44:	e8 27 05 00 00       	call   0x44a070
449b49:	8b 4d e4             	mov    -0x1c(%ebp),%ecx
449b4c:	8d 47 08             	lea    0x8(%edi),%eax
449b4f:	56                   	push   %esi
449b50:	50                   	push   %eax
449b51:	8d 45 e8             	lea    -0x18(%ebp),%eax
449b54:	50                   	push   %eax
449b55:	e8 b6 fd ff ff       	call   0x449910
449b5a:	8b 55 e4             	mov    -0x1c(%ebp),%edx
449b5d:	8b 08                	mov    (%eax),%ecx
449b5f:	8b 40 04             	mov    0x4(%eax),%eax
449b62:	89 45 ec             	mov    %eax,-0x14(%ebp)
449b65:	eb 03                	jmp    0x449b6a
449b67:	8b 4d e8             	mov    -0x18(%ebp),%ecx
449b6a:	8b 41 04             	mov    0x4(%ecx),%eax