424893:	83 ec 14             	sub    $0x14,%esp
424896:	8b 55 10             	mov    0x10(%ebp),%edx
424899:	53                   	push   %ebx
42489a:	8b 5d 0c             	mov    0xc(%ebp),%ebx
42489d:	56                   	push   %esi
42489e:	57                   	push   %edi
42489f:	8b f9                	mov    %ecx,%edi
4248a1:	89 5d fc             	mov    %ebx,-0x4(%ebp)
4248a4:	89 55 f0             	mov    %edx,-0x10(%ebp)
4248a7:	8b 4f 14             	mov    0x14(%edi),%ecx
4248aa:	8b c1                	mov    %ecx,%eax
4248ac:	8b 77 10             	mov    0x10(%edi),%esi
4248af:	2b c6                	sub    %esi,%eax
4248b1:	89 75 ec             	mov    %esi,-0x14(%ebp)
4248b4:	89 4d f4             	mov    %ecx,-0xc(%ebp)
4248b7:	3b d0                	cmp    %eax,%edx
4248b9:	0f 87 8c 00 00 00    	ja     0x42494b
4248bf:	83 7d f4 08          	cmpl   $0x8,-0xc(%ebp)
4248c3:	8d 04 32             	lea    (%edx,%esi,1),%eax
4248c6:	89 47 10             	mov    %eax,0x10(%edi)
4248c9:	8b cf                	mov    %edi,%ecx
4248cb:	89 7d f8             	mov    %edi,-0x8(%ebp)
4248ce:	72 05                	jb     0x4248d5
4248d0:	8b 0f                	mov    (%edi),%ecx
4248d2:	89 4d f8             	mov    %ecx,-0x8(%ebp)
4248d5:	8d 04 12             	lea    (%edx,%edx,1),%eax
4248d8:	89 45 f4             	mov    %eax,-0xc(%ebp)
4248db:	03 c3                	add    %ebx,%eax
4248dd:	3b c1                	cmp    %ecx,%eax
4248df:	76 18                	jbe    0x4248f9
4248e1:	8d 04 71             	lea    (%ecx,%esi,2),%eax
4248e4:	3b d8                	cmp    %eax,%ebx
4248e6:	77 11                	ja     0x4248f9
4248e8:	3b cb                	cmp    %ebx,%ecx
4248ea:	77 04                	ja     0x4248f0
4248ec:	33 db                	xor    %ebx,%ebx
4248ee:	eb 0b                	jmp    0x4248fb
4248f0:	8b d9                	mov    %ecx,%ebx
4248f2:	2b 5d fc             	sub    -0x4(%ebp),%ebx
4248f5:	d1 fb                	sar    $1,%ebx
4248f7:	eb 02                	jmp    0x4248fb
4248f9:	8b da                	mov    %edx,%ebx
4248fb:	8d 04 75 02 00 00 00 	lea    0x2(,%esi,2),%eax
424902:	50                   	push   %eax
424903:	8b 45 f4             	mov    -0xc(%ebp),%eax
424906:	51                   	push   %ecx
424907:	03 c1                	add    %ecx,%eax
424909:	50                   	push   %eax
42490a:	e8 11 6d 04 00       	call   0x46b620
42490f:	8d 34 1b             	lea    (%ebx,%ebx,1),%esi
424912:	56                   	push   %esi
424913:	ff 75 fc             	push   -0x4(%ebp)
424916:	ff 75 f8             	push   -0x8(%ebp)
424919:	e8 02 6d 04 00       	call   0x46b620
42491e:	8b 45 f0             	mov    -0x10(%ebp),%eax
424921:	8b c8                	mov    %eax,%ecx
424923:	2b cb                	sub    %ebx,%ecx
424925:	03 c9                	add    %ecx,%ecx
424927:	51                   	push   %ecx
424928:	8d 0c 18             	lea    (%eax,%ebx,1),%ecx
42492b:	8b 45 fc             	mov    -0x4(%ebp),%eax
42492e:	8d 0c 48             	lea    (%eax,%ecx,2),%ecx
424931:	51                   	push   %ecx
424932:	8b 4d f8             	mov    -0x8(%ebp),%ecx
424935:	03 ce                	add    %esi,%ecx
424937:	51                   	push   %ecx
424938:	e8 e3 6c 04 00       	call   0x46b620
42493d:	83 c4 24             	add    $0x24,%esp
424940:	8b c7                	mov    %edi,%eax
424942:	5f                   	pop    %edi
424943:	5e                   	pop    %esi
424944:	5b                   	pop    %ebx
424945:	8b e5                	mov    %ebp,%esp
424947:	5d                   	pop    %ebp
424948:	c2 0c 00             	ret    $0xc
42494b:	b8 fe ff ff 7f       	mov    $0x7ffffffe,%eax
424950:	2b c6                	sub    %esi,%eax
424952:	3b c2                	cmp    %edx,%eax
424954:	0f 82 f4 00 00 00    	jb     0x424a4e
42495a:	8d 04 16             	lea    (%esi,%edx,1),%eax
42495d:	8b f0                	mov    %eax,%esi
42495f:	89 45 f8             	mov    %eax,-0x8(%ebp)
424962:	83 ce 07             	or     $0x7,%esi
424965:	81 fe fe ff ff 7f    	cmp    $0x7ffffffe,%esi
42496b:	76 07                	jbe    0x424974
42496d:	be fe ff ff 7f       	mov    $0x7ffffffe,%esi
424972:	eb 1e                	jmp    0x424992
424974:	8b d1                	mov    %ecx,%edx
424976:	b8 fe ff ff 7f       	mov    $0x7ffffffe,%eax
42497b:	d1 ea                	shr    $1,%edx
42497d:	2b c2                	sub    %edx,%eax
42497f:	3b c8                	cmp    %eax,%ecx
424981:	76 07                	jbe    0x42498a
424983:	be fe ff ff 7f       	mov    $0x7ffffffe,%esi
424988:	eb 08                	jmp    0x424992
42498a:	8d 04 0a             	lea    (%edx,%ecx,1),%eax
42498d:	3b f0                	cmp    %eax,%esi
42498f:	0f 42 f0             	cmovb  %eax,%esi
424992:	33 c9                	xor    %ecx,%ecx
424994:	8b c6                	mov    %esi,%eax
424996:	83 c0 01             	add    $0x1,%eax
424999:	0f 92 c1             	setb   %cl
42499c:	f7 d9                	neg    %ecx
42499e:	0b c8                	or     %eax,%ecx
4249a0:	51                   	push   %ecx
4249a1:	8b cf                	mov    %edi,%ecx
4249a3:	e8 68 d7 fd ff       	call   0x402110
4249a8:	83 7d f4 08          	cmpl   $0x8,-0xc(%ebp)
4249ac:	8b c8                	mov    %eax,%ecx
4249ae:	8b 45 f8             	mov    -0x8(%ebp),%eax
4249b1:	89 47 10             	mov    %eax,0x10(%edi)
4249b4:	8b 45 f0             	mov    -0x10(%ebp),%eax
4249b7:	89 77 14             	mov    %esi,0x14(%edi)
4249ba:	89 4d fc             	mov    %ecx,-0x4(%ebp)
4249bd:	8d 14 00             	lea    (%eax,%eax,1),%edx
4249c0:	8b 45 ec             	mov    -0x14(%ebp),%eax
4249c3:	52                   	push   %edx
4249c4:	53                   	push   %ebx
4249c5:	51                   	push   %ecx
4249c6:	8d 34 45 02 00 00 00 	lea    0x2(,%eax,2),%esi
4249cd:	8d 04 0a             	lea    (%edx,%ecx,1),%eax
4249d0:	89 75 ec             	mov    %esi,-0x14(%ebp)
4249d3:	89 45 f0             	mov    %eax,-0x10(%ebp)
4249d6:	72 54                	jb     0x424a2c
4249d8:	8b 37                	mov    (%edi),%esi
4249da:	e8 41 6c 04 00       	call   0x46b620
4249df:	ff 75 ec             	push   -0x14(%ebp)
4249e2:	56                   	push   %esi
4249e3:	ff 75 f0             	push   -0x10(%ebp)
4249e6:	e8 35 6c 04 00       	call   0x46b620
4249eb:	8b 45 f4             	mov    -0xc(%ebp),%eax
4249ee:	83 c4 18             	add    $0x18,%esp
4249f1:	8d 0c 45 02 00 00 00 	lea    0x2(,%eax,2),%ecx
4249f8:	81 f9 00 10 00 00    	cmp    $0x1000,%ecx
4249fe:	72 12                	jb     0x424a12
424a00:	8b 56 fc             	mov    -0x4(%esi),%edx
424a03:	83 c1 23             	add    $0x23,%ecx
424a06:	2b f2                	sub    %edx,%esi
424a08:	8d 46 fc             	lea    -0x4(%esi),%eax
424a0b:	83 f8 1f             	cmp    $0x1f,%eax
424a0e:	77 43                	ja     0x424a53
424a10:	8b f2                	mov    %edx,%esi
424a12:	51                   	push   %ecx
424a13:	56                   	push   %esi
424a14:	e8 ef 4f 04 00       	call   0x469a08
424a19:	8b 45 fc             	mov    -0x4(%ebp),%eax
424a1c:	83 c4 08             	add    $0x8,%esp
424a1f:	89 07                	mov    %eax,(%edi)
424a21:	8b c7                	mov    %edi,%eax
424a23:	5f                   	pop    %edi
424a24:	5e                   	pop    %esi
424a25:	5b                   	pop    %ebx
424a26:	8b e5                	mov    %ebp,%esp
424a28:	5d                   	pop    %ebp
424a29:	c2 0c 00             	ret    $0xc
424a2c:	e8 ef 6b 04 00       	call   0x46b620
424a31:	56                   	push   %esi
424a32:	57                   	push   %edi
424a33:	ff 75 f0             	push   -0x10(%ebp)
424a36:	e8 e5 6b 04 00       	call   0x46b620
424a3b:	8b 45 fc             	mov    -0x4(%ebp),%eax
424a3e:	83 c4 18             	add    $0x18,%esp
424a41:	89 07                	mov    %eax,(%edi)
424a43:	8b c7                	mov    %edi,%eax
424a45:	5f                   	pop    %edi
424a46:	5e                   	pop    %esi
424a47:	5b                   	pop    %ebx
424a48:	8b e5                	mov    %ebp,%esp
424a4a:	5d                   	pop    %ebp
424a4b:	c2 0c 00             	ret    $0xc
424a4e:	e8 8d c9 fd ff       	call   0x4013e0
424a53:	e8 d9 4b 05 00       	call   0x479631
424a58:	cc                   	int3
424a59:	cc                   	int3
424a5a:	cc                   	int3
424a5b:	cc                   	int3
424a5c:	cc                   	int3
424a5d:	cc                   	int3
424a5e:	cc                   	int3
424a5f:	cc                   	int3
424a60:	55                   	push   %ebp
424a61:	8b ec                	mov    %esp,%ebp
424a63:	83 e4 f0             	and    $0xfffffff0,%esp
424a66:	83 ec 48             	sub    $0x48,%esp
424a69:	a1 14 40 4c 00       	mov    0x4c4014,%eax
424a6e:	33 c4                	xor    %esp,%eax
424a70:	89 44 24 44          	mov    %eax,0x44(%esp)
424a74:	56                   	push   %esi
424a75:	57                   	push   %edi
424a76:	8b f9                	mov    %ecx,%edi
424a78:	89 54 24 10          	mov    %edx,0x10(%esp)
424a7c:	8b c2                	mov    %edx,%eax
424a7e:	2b c7                	sub    %edi,%eax
424a80:	3d 18 03 00 00       	cmp    $0x318,%eax
424a85:	8b 45 0c             	mov    0xc(%ebp),%eax
424a88:	0f 8c a2 00 00 00    	jl     0x424b30
424a8e:	8b 75 08             	mov    0x8(%ebp),%esi
424a91:	85 f6                	test   %esi,%esi
424a93:	0f 8e b3 00 00 00    	jle    0x424b4c
424a99:	50                   	push   %eax
424a9a:	52                   	push   %edx
424a9b:	8b d7                	mov    %edi,%edx
424a9d:	8d 4c 24 20          	lea    0x20(%esp),%ecx
424aa1:	e8 1a 05 00 00       	call   0x424fc0
424aa6:	8b 4c 24 18          	mov    0x18(%esp),%ecx
424aaa:	8b c6                	mov    %esi,%eax
424aac:	2b 4c 24 24          	sub    0x24(%esp),%ecx
424ab0:	83 c4 08             	add    $0x8,%esp
424ab3:	c1 f8 02             	sar    $0x2,%eax
424ab6:	d1 fe                	sar    $1,%esi
424ab8:	03 f0                	add    %eax,%esi
424aba:	b8 ab aa aa 2a       	mov    $0x2aaaaaab,%eax
424abf:	f7 e9                	imul   %ecx
424ac1:	8b 4c 24 18          	mov    0x18(%esp),%ecx
424ac5:	b8 ab aa aa 2a       	mov    $0x2aaaaaab,%eax
424aca:	c1 fa 02             	sar    $0x2,%edx
424acd:	2b cf                	sub    %edi,%ecx
424acf:	89 75 08             	mov    %esi,0x8(%ebp)
424ad2:	8b f2                	mov    %edx,%esi
424ad4:	c1 ee 1f             	shr    $0x1f,%esi
424ad7:	03 f2                	add    %edx,%esi
424ad9:	f7 e9                	imul   %ecx
424adb:	c1 fa 02             	sar    $0x2,%edx
424ade:	8b c2                	mov    %edx,%eax
424ae0:	c1 e8 1f             	shr    $0x1f,%eax
424ae3:	03 c2                	add    %edx,%eax
424ae5:	3b c6                	cmp    %esi,%eax
424ae7:	8b 45 0c             	mov    0xc(%ebp),%eax
424aea:	8b 75 08             	mov    0x8(%ebp),%esi
424aed:	50                   	push   %eax
424aee:	56                   	push   %esi
424aef:	7d 15                	jge    0x424b06
424af1:	8b 54 24 20          	mov    0x20(%esp),%edx
424af5:	8b cf                	mov    %edi,%ecx
424af7:	e8 64 ff ff ff       	call   0x424a60
424afc:	8b 7c 24 24          	mov    0x24(%esp),%edi
424b00:	8b 54 24 18          	mov    0x18(%esp),%edx
424b04:	eb 15                	jmp    0x424b1b
424b06:	8b 54 24 18          	mov    0x18(%esp),%edx
424b0a:	8b 4c 24 24          	mov    0x24(%esp),%ecx
424b0e:	e8 4d ff ff ff       	call   0x424a60
424b13:	8b 54 24 20          	mov    0x20(%esp),%edx
424b17:	89 54 24 18          	mov    %edx,0x18(%esp)
424b1b:	8b c2                	mov    %edx,%eax
424b1d:	83 c4 08             	add    $0x8,%esp
424b20:	2b c7                	sub    %edi,%eax
424b22:	3d 18 03 00 00       	cmp    $0x318,%eax
424b27:	8b 45 0c             	mov    0xc(%ebp),%eax
424b2a:	0f 8d 61 ff ff ff    	jge    0x424a91
424b30:	50                   	push   %eax
424b31:	8b cf                	mov    %edi,%ecx
424b33:	e8 d8 01 00 00       	call   0x424d10
424b38:	83 c4 04             	add    $0x4,%esp
424b3b:	8b 4c 24 4c          	mov    0x4c(%esp),%ecx
424b3f:	5f                   	pop    %edi
424b40:	5e                   	pop    %esi
424b41:	33 cc                	xor    %esp,%ecx
424b43:	e8 82 4e 04 00       	call   0x4699ca
424b48:	8b e5                	mov    %ebp,%esp
424b4a:	5d                   	pop    %ebp
424b4b:	c3                   	ret
424b4c:	8b ca                	mov    %edx,%ecx
424b4e:	b8 ab aa aa 2a       	mov    $0x2aaaaaab,%eax
424b53:	2b cf                	sub    %edi,%ecx
424b55:	f7 e9                	imul   %ecx
424b57:	c1 fa 02             	sar    $0x2,%edx
424b5a:	8b c2                	mov    %edx,%eax
424b5c:	c1 e8 1f             	shr    $0x1f,%eax
424b5f:	03 c2                	add    %edx,%eax
424b61:	8b c8                	mov    %eax,%ecx
424b63:	89 44 24 14          	mov    %eax,0x14(%esp)
424b67:	d1 f9                	sar    $1,%ecx
424b69:	85 c9                	test   %ecx,%ecx
424b6b:	0f 8e 99 00 00 00    	jle    0x424c0a
424b71:	8d 04 49             	lea    (%ecx,%ecx,2),%eax
424b74:	8d 34 c7             	lea    (%edi,%eax,8),%esi
424b77:	0f 10 46 e8          	movups -0x18(%esi),%xmm0
424b7b:	8d 76 e8             	lea    -0x18(%esi),%esi
424b7e:	33 c0                	xor    %eax,%eax
424b80:	ff 75 0c             	push   0xc(%ebp)
424b83:	0f 11 44 24 24       	movups %xmm0,0x24(%esp)
424b88:	49                   	dec    %ecx
424b89:	f3 0f 7e 46 10       	movq   0x10(%esi),%xmm0
424b8e:	8b d1                	mov    %ecx,%edx
424b90:	66 89 06             	mov    %ax,(%esi)
424b93:	8d 44 24 24          	lea    0x24(%esp),%eax
424b97:	50                   	push   %eax
424b98:	ff 74 24 1c          	push   0x1c(%esp)
424b9c:	89 4c 24 24          	mov    %ecx,0x24(%esp)
424ba0:	8b cf                	mov    %edi,%ecx
424ba2:	66 0f d6 44 24 3c    	movq   %xmm0,0x3c(%esp)
424ba8:	c7 46 10 00 00 00 00 	movl   $0x0,0x10(%esi)
424baf:	c7 46 14 07 00 00 00 	movl   $0x7,0x14(%esi)
424bb6:	e8 05 08 00 00       	call   0x4253c0
424bbb:	8b 4c 24 40          	mov    0x40(%esp),%ecx
424bbf:	83 c4 0c             	add    $0xc,%esp
424bc2:	83 f9 08             	cmp    $0x8,%ecx
424bc5:	72 33                	jb     0x424bfa
424bc7:	8b 54 24 20          	mov    0x20(%esp),%edx
424bcb:	8d 0c 4d 02 00 00 00 	lea    0x2(,%ecx,2),%ecx
424bd2:	8b c2                	mov    %edx,%eax
424bd4:	81 f9 00 10 00 00    	cmp    $0x1000,%ecx
424bda:	72 14                	jb     0x424bf0
424bdc:	8b 50 fc             	mov    -0x4(%eax),%edx
424bdf:	83 c1 23             	add    $0x23,%ecx
424be2:	2b c2                	sub    %edx,%eax
424be4:	83 c0 fc             	add    $0xfffffffc,%eax
424be7:	83 f8 1f             	cmp    $0x1f,%eax
424bea:	0f 87 0d 01 00 00    	ja     0x424cfd
424bf0:	51                   	push   %ecx
424bf1:	52                   	push   %edx
424bf2:	e8 11 4e 04 00       	call   0x469a08
424bf7:	83 c4 08             	add    $0x8,%esp
424bfa:	8b 4c 24 18          	mov    0x18(%esp),%ecx
424bfe:	85 c9                	test   %ecx,%ecx
424c00:	0f 8f 71 ff ff ff    	jg     0x424b77
424c06:	8b 44 24 14          	mov    0x14(%esp),%eax
424c0a:	83 f8 02             	cmp    $0x2,%eax
424c0d:	0f 8c 28 ff ff ff    	jl     0x424b3b
424c13:	8b 74 24 10          	mov    0x10(%esp),%esi
424c17:	b8 ec ff ff ff       	mov    $0xffffffec,%eax
424c1c:	2b c7                	sub    %edi,%eax
424c1e:	83 c6 e8             	add    $0xffffffe8,%esi
424c21:	89 44 24 18          	mov    %eax,0x18(%esp)
424c25:	b8 18 00 00 00       	mov    $0x18,%eax
424c2a:	2b c7                	sub    %edi,%eax
424c2c:	89 44 24 14          	mov    %eax,0x14(%esp)
424c30:	8d 0c 30             	lea    (%eax,%esi,1),%ecx
424c33:	b8 ab aa aa 2a       	mov    $0x2aaaaaab,%eax
424c38:	f7 e9                	imul   %ecx
424c3a:	c1 fa 02             	sar    $0x2,%edx
424c3d:	8b c2                	mov    %edx,%eax
424c3f:	c1 e8 1f             	shr    $0x1f,%eax
424c42:	03 c2                	add    %edx,%eax
424c44:	83 f8 02             	cmp    $0x2,%eax
424c47:	0f 8c 95 00 00 00    	jl     0x424ce2
424c4d:	0f 10 06             	movups (%esi),%xmm0
424c50:	33 c0                	xor    %eax,%eax
424c52:	8b ce                	mov    %esi,%ecx
424c54:	57                   	push   %edi
424c55:	0f 11 44 24 24       	movups %xmm0,0x24(%esp)
424c5a:	f3 0f 7e 46 10       	movq   0x10(%esi),%xmm0
424c5f:	66 0f d6 44 24 34    	movq   %xmm0,0x34(%esp)
424c65:	c7 46 10 00 00 00 00 	movl   $0x0,0x10(%esi)
424c6c:	c7 46 14 07 00 00 00 	movl   $0x7,0x14(%esi)
424c73:	66 89 06             	mov    %ax,(%esi)
424c76:	e8 75 e0 fd ff       	call   0x402cf0
424c7b:	ff 75 0c             	push   0xc(%ebp)
424c7e:	8b 4c 24 1c          	mov    0x1c(%esp),%ecx
424c82:	8d 44 24 24          	lea    0x24(%esp),%eax