4a582d:	83 fa 0f             	cmp    $0xf,%edx
4a5830:	73 13                	jae    0x4a5845
4a5832:	0f b6 04 16          	movzbl (%esi,%edx,1),%eax
4a5836:	0b c8                	or     %eax,%ecx
4a5838:	c6 04 16 00          	movb   $0x0,(%esi,%edx,1)
4a583c:	42                   	inc    %edx
4a583d:	c1 e1 08             	shl    $0x8,%ecx
4a5840:	83 fa 0f             	cmp    $0xf,%edx
4a5843:	72 ed                	jb     0x4a5832
4a5845:	0f b6 46 0f          	movzbl 0xf(%esi),%eax
4a5849:	8b 7c 24 5c          	mov    0x5c(%esp),%edi
4a584d:	0b c8                	or     %eax,%ecx
4a584f:	c6 46 0f 01          	movb   $0x1,0xf(%esi)
4a5853:	3b cf                	cmp    %edi,%ecx
4a5855:	74 15                	je     0x4a586c
4a5857:	5f                   	pop    %edi
4a5858:	5e                   	pop    %esi
4a5859:	83 c8 ff             	or     $0xffffffff,%eax
4a585c:	5b                   	pop    %ebx
4a585d:	8b 4c 24 3c          	mov    0x3c(%esp),%ecx
4a5861:	33 cc                	xor    %esp,%ecx
4a5863:	e8 72 bc 13 00       	call   0x5e14da
4a5868:	83 c4 40             	add    $0x40,%esp
4a586b:	c3                   	ret
4a586c:	8d 47 0f             	lea    0xf(%edi),%eax
4a586f:	83 c8 08             	or     $0x8,%eax
4a5872:	c1 e8 03             	shr    $0x3,%eax
4a5875:	01 46 20             	add    %eax,0x20(%esi)
4a5878:	83 56 24 00          	adcl   $0x0,0x24(%esi)
4a587c:	81 7e 24 00 00 00 20 	cmpl   $0x20000000,0x24(%esi)
4a5883:	72 1f                	jb     0x4a58a4
4a5885:	77 06                	ja     0x4a588d
4a5887:	83 7e 20 00          	cmpl   $0x0,0x20(%esi)
4a588b:	76 17                	jbe    0x4a58a4
4a588d:	5f                   	pop    %edi
4a588e:	5e                   	pop    %esi
4a588f:	b8 fe ff ff ff       	mov    $0xfffffffe,%eax
4a5894:	5b                   	pop    %ebx
4a5895:	8b 4c 24 3c          	mov    0x3c(%esp),%ecx
4a5899:	33 cc                	xor    %esp,%ecx
4a589b:	e8 3a bc 13 00       	call   0x5e14da
4a58a0:	83 c4 40             	add    $0x40,%esp
4a58a3:	c3                   	ret
4a58a4:	55                   	push   %ebp
4a58a5:	8b ef                	mov    %edi,%ebp
4a58a7:	c1 ed 04             	shr    $0x4,%ebp
4a58aa:	85 ed                	test   %ebp,%ebp
4a58ac:	74 3c                	je     0x4a58ea
4a58ae:	8d 46 10             	lea    0x10(%esi),%eax
4a58b1:	50                   	push   %eax
4a58b2:	56                   	push   %esi
4a58b3:	ff 74 24 20          	push   0x20(%esp)
4a58b7:	55                   	push   %ebp
4a58b8:	ff 74 24 24          	push   0x24(%esp)
4a58bc:	53                   	push   %ebx
4a58bd:	ff 54 24 38          	call   *0x38(%esp)
4a58c1:	c1 e5 04             	shl    $0x4,%ebp
4a58c4:	83 c4 18             	add    $0x18,%esp
4a58c7:	01 6c 24 14          	add    %ebp,0x14(%esp)
4a58cb:	03 dd                	add    %ebp,%ebx
4a58cd:	2b fd                	sub    %ebp,%edi
4a58cf:	89 5c 24 24          	mov    %ebx,0x24(%esp)
4a58d3:	89 7c 24 60          	mov    %edi,0x60(%esp)
4a58d7:	0f 84 17 01 00 00    	je     0x4a59f4
4a58dd:	c1 ed 04             	shr    $0x4,%ebp
4a58e0:	55                   	push   %ebp
4a58e1:	56                   	push   %esi
4a58e2:	e8 79 02 00 00       	call   0x4a5b60
4a58e7:	83 c4 08             	add    $0x8,%esp
4a58ea:	85 ff                	test   %edi,%edi
4a58ec:	0f 84 02 01 00 00    	je     0x4a59f4
4a58f2:	33 c9                	xor    %ecx,%ecx
4a58f4:	85 ff                	test   %edi,%edi
4a58f6:	74 0c                	je     0x4a5904
4a58f8:	8a 04 0b             	mov    (%ebx,%ecx,1),%al
4a58fb:	30 44 0e 10          	xor    %al,0x10(%esi,%ecx,1)
4a58ff:	41                   	inc    %ecx
4a5900:	3b cf                	cmp    %edi,%ecx
4a5902:	72 f4                	jb     0x4a58f8
4a5904:	8b 6c 24 18          	mov    0x18(%esp),%ebp
4a5908:	8d 46 10             	lea    0x10(%esi),%eax
4a590b:	55                   	push   %ebp
4a590c:	50                   	push   %eax
4a590d:	50                   	push   %eax
4a590e:	ff 54 24 28          	call   *0x28(%esp)
4a5912:	55                   	push   %ebp
4a5913:	8d 44 24 4c          	lea    0x4c(%esp),%eax
4a5917:	50                   	push   %eax
4a5918:	56                   	push   %esi
4a5919:	ff 54 24 34          	call   *0x34(%esp)
4a591d:	83 c4 18             	add    $0x18,%esp
4a5920:	33 d2                	xor    %edx,%edx
4a5922:	85 ff                	test   %edi,%edi
4a5924:	0f 84 ce 00 00 00    	je     0x4a59f8
4a592a:	8b 6c 24 14          	mov    0x14(%esp),%ebp
4a592e:	83 ff 20             	cmp    $0x20,%edi
4a5931:	0f 82 9e 00 00 00    	jb     0x4a59d5
4a5937:	8d 4d ff             	lea    -0x1(%ebp),%ecx
4a593a:	8d 44 3c 3b          	lea    0x3b(%esp,%edi,1),%eax
4a593e:	03 cf                	add    %edi,%ecx
4a5940:	3b e8                	cmp    %eax,%ebp
4a5942:	77 0c                	ja     0x4a5950
4a5944:	8d 44 24 3c          	lea    0x3c(%esp),%eax
4a5948:	3b c8                	cmp    %eax,%ecx
4a594a:	0f 83 85 00 00 00    	jae    0x4a59d5
4a5950:	8d 43 ff             	lea    -0x1(%ebx),%eax
4a5953:	03 c7                	add    %edi,%eax
4a5955:	3b e8                	cmp    %eax,%ebp
4a5957:	77 04                	ja     0x4a595d
4a5959:	3b cb                	cmp    %ebx,%ecx
4a595b:	73 78                	jae    0x4a59d5
4a595d:	8b f5                	mov    %ebp,%esi
4a595f:	8b c7                	mov    %edi,%eax
4a5961:	2b f3                	sub    %ebx,%esi
4a5963:	83 e0 1f             	and    $0x1f,%eax
4a5966:	89 74 24 20          	mov    %esi,0x20(%esp)
4a596a:	8b cf                	mov    %edi,%ecx
4a596c:	8d 74 24 3c          	lea    0x3c(%esp),%esi
4a5970:	2b c8                	sub    %eax,%ecx
4a5972:	2b f3                	sub    %ebx,%esi
4a5974:	8b c3                	mov    %ebx,%eax
4a5976:	89 74 24 28          	mov    %esi,0x28(%esp)
4a597a:	8d 74 24 4c          	lea    0x4c(%esp),%esi
4a597e:	8b 7c 24 28          	mov    0x28(%esp),%edi
4a5982:	2b f3                	sub    %ebx,%esi
4a5984:	8d 5d 10             	lea    0x10(%ebp),%ebx
4a5987:	89 74 24 2c          	mov    %esi,0x2c(%esp)
4a598b:	8b 6c 24 20          	mov    0x20(%esp),%ebp
4a598f:	89 5c 24 30          	mov    %ebx,0x30(%esp)
4a5993:	8b de                	mov    %esi,%ebx
4a5995:	0f 10 00             	movups (%eax),%xmm0
4a5998:	8b 74 24 30          	mov    0x30(%esp),%esi
4a599c:	8d 40 20             	lea    0x20(%eax),%eax
4a599f:	0f 10 4c 07 e0       	movups -0x20(%edi,%eax,1),%xmm1
4a59a4:	66 0f ef c8          	pxor   %xmm0,%xmm1
4a59a8:	0f 11 4c 28 e0       	movups %xmm1,-0x20(%eax,%ebp,1)
4a59ad:	0f 10 40 f0          	movups -0x10(%eax),%xmm0
4a59b1:	0f 10 4c 03 e0       	movups -0x20(%ebx,%eax,1),%xmm1
4a59b6:	66 0f ef c8          	pxor   %xmm0,%xmm1
4a59ba:	0f 11 0c 16          	movups %xmm1,(%esi,%edx,1)
4a59be:	8b 74 24 34          	mov    0x34(%esp),%esi
4a59c2:	83 c2 20             	add    $0x20,%edx
4a59c5:	3b d1                	cmp    %ecx,%edx
4a59c7:	72 cc                	jb     0x4a5995
4a59c9:	8b 7c 24 60          	mov    0x60(%esp),%edi
4a59cd:	8b 5c 24 24          	mov    0x24(%esp),%ebx
4a59d1:	8b 6c 24 14          	mov    0x14(%esp),%ebp
4a59d5:	3b d7                	cmp    %edi,%edx
4a59d7:	73 1b                	jae    0x4a59f4
4a59d9:	8d 44 24 3c          	lea    0x3c(%esp),%eax
4a59dd:	2b d8                	sub    %eax,%ebx
4a59df:	2b e8                	sub    %eax,%ebp
4a59e1:	8d 4c 24 3c          	lea    0x3c(%esp),%ecx
4a59e5:	03 ca                	add    %edx,%ecx
4a59e7:	42                   	inc    %edx
4a59e8:	8a 04 0b             	mov    (%ebx,%ecx,1),%al
4a59eb:	32 01                	xor    (%ecx),%al
4a59ed:	88 04 29             	mov    %al,(%ecx,%ebp,1)
4a59f0:	3b d7                	cmp    %edi,%edx
4a59f2:	72 ed                	jb     0x4a59e1
4a59f4:	8b 6c 24 18          	mov    0x18(%esp),%ebp
4a59f8:	8b 54 24 38          	mov    0x38(%esp),%edx
4a59fc:	83 fa 10             	cmp    $0x10,%edx
4a59ff:	73 1a                	jae    0x4a5a1b
4a5a01:	b9 10 00 00 00       	mov    $0x10,%ecx
4a5a06:	8d 3c 32             	lea    (%edx,%esi,1),%edi
4a5a09:	2b ca                	sub    %edx,%ecx
4a5a0b:	33 c0                	xor    %eax,%eax
4a5a0d:	8b d1                	mov    %ecx,%edx
4a5a0f:	c1 e9 02             	shr    $0x2,%ecx
4a5a12:	f3 ab                	rep stos %eax,%es:(%edi)
4a5a14:	8b ca                	mov    %edx,%ecx
4a5a16:	83 e1 03             	and    $0x3,%ecx
4a5a19:	f3 aa                	rep stos %al,%es:(%edi)
4a5a1b:	55                   	push   %ebp
4a5a1c:	8d 44 24 40          	lea    0x40(%esp),%eax
4a5a20:	50                   	push   %eax
4a5a21:	56                   	push   %esi
4a5a22:	ff 54 24 28          	call   *0x28(%esp)
4a5a26:	8b 44 24 48          	mov    0x48(%esp),%eax
4a5a2a:	83 c4 0c             	add    $0xc,%esp
4a5a2d:	31 46 10             	xor    %eax,0x10(%esi)
4a5a30:	8b 44 24 40          	mov    0x40(%esp),%eax
4a5a34:	31 46 14             	xor    %eax,0x14(%esi)
4a5a37:	8b 44 24 44          	mov    0x44(%esp),%eax
4a5a3b:	31 46 18             	xor    %eax,0x18(%esi)
4a5a3e:	8b 44 24 48          	mov    0x48(%esp),%eax
4a5a42:	31 46 1c             	xor    %eax,0x1c(%esi)
4a5a45:	8a 44 24 13          	mov    0x13(%esp),%al
4a5a49:	8b 4c 24 4c          	mov    0x4c(%esp),%ecx
4a5a4d:	5d                   	pop    %ebp
4a5a4e:	5f                   	pop    %edi
4a5a4f:	88 06                	mov    %al,(%esi)
4a5a51:	33 c0                	xor    %eax,%eax
4a5a53:	5e                   	pop    %esi
4a5a54:	5b                   	pop    %ebx
4a5a55:	33 cc                	xor    %esp,%ecx
4a5a57:	e8 7e ba 13 00       	call   0x5e14da
4a5a5c:	83 c4 40             	add    $0x40,%esp
4a5a5f:	c3                   	ret
4a5a60:	8b 4c 24 08          	mov    0x8(%esp),%ecx
4a5a64:	0f 57 c0             	xorps  %xmm0,%xmm0
4a5a67:	8b 54 24 04          	mov    0x4(%esp),%edx
4a5a6b:	8a 44 24 0c          	mov    0xc(%esp),%al
4a5a6f:	fe c8                	dec    %al
4a5a71:	8d 49 fe             	lea    -0x2(%ecx),%ecx
4a5a74:	24 07                	and    $0x7,%al
4a5a76:	d1 e9                	shr    $1,%ecx
4a5a78:	80 e1 07             	and    $0x7,%cl
4a5a7b:	0f 11 02             	movups %xmm0,(%edx)
4a5a7e:	c0 e1 03             	shl    $0x3,%cl
4a5a81:	0a c8                	or     %al,%cl
4a5a83:	c7 42 20 00 00 00 00 	movl   $0x0,0x20(%edx)
4a5a8a:	8b 44 24 14          	mov    0x14(%esp),%eax
4a5a8e:	89 42 28             	mov    %eax,0x28(%edx)
4a5a91:	8b 44 24 10          	mov    0x10(%esp),%eax
4a5a95:	88 0a                	mov    %cl,(%edx)
4a5a97:	c7 42 24 00 00 00 00 	movl   $0x0,0x24(%edx)
4a5a9e:	89 42 2c             	mov    %eax,0x2c(%edx)
4a5aa1:	c3                   	ret
4a5aa2:	cc                   	int3
4a5aa3:	cc                   	int3
4a5aa4:	cc                   	int3
4a5aa5:	cc                   	int3
4a5aa6:	cc                   	int3
4a5aa7:	cc                   	int3
4a5aa8:	cc                   	int3
4a5aa9:	cc                   	int3
4a5aaa:	cc                   	int3
4a5aab:	cc                   	int3
4a5aac:	cc                   	int3
4a5aad:	cc                   	int3
4a5aae:	cc                   	int3
4a5aaf:	cc                   	int3
4a5ab0:	8b 54 24 04          	mov    0x4(%esp),%edx
4a5ab4:	53                   	push   %ebx
4a5ab5:	56                   	push   %esi
4a5ab6:	be 0e 00 00 00       	mov    $0xe,%esi
4a5abb:	8a 1a                	mov    (%edx),%bl
4a5abd:	0f b6 c3             	movzbl %bl,%eax
4a5ac0:	83 e0 07             	and    $0x7,%eax
4a5ac3:	2b f0                	sub    %eax,%esi
4a5ac5:	39 74 24 14          	cmp    %esi,0x14(%esp)
4a5ac9:	73 06                	jae    0x4a5ad1
4a5acb:	5e                   	pop    %esi
4a5acc:	83 c8 ff             	or     $0xffffffff,%eax
4a5acf:	5b                   	pop    %ebx
4a5ad0:	c3                   	ret
4a5ad1:	8b 4c 24 18          	mov    0x18(%esp),%ecx
4a5ad5:	80 e3 bf             	and    $0xbf,%bl
4a5ad8:	c7 42 0c 00 00 00 00 	movl   $0x0,0xc(%edx)
4a5adf:	8b c1                	mov    %ecx,%eax
4a5ae1:	c1 e8 18             	shr    $0x18,%eax
4a5ae4:	88 42 0c             	mov    %al,0xc(%edx)
4a5ae7:	8b c1                	mov    %ecx,%eax
4a5ae9:	c1 e8 10             	shr    $0x10,%eax
4a5aec:	88 42 0d             	mov    %al,0xd(%edx)
4a5aef:	8b c1                	mov    %ecx,%eax
4a5af1:	c1 e8 08             	shr    $0x8,%eax
4a5af4:	56                   	push   %esi
4a5af5:	ff 74 24 14          	push   0x14(%esp)
4a5af9:	88 42 0e             	mov    %al,0xe(%edx)
4a5afc:	8d 42 01             	lea    0x1(%edx),%eax
4a5aff:	50                   	push   %eax
4a5b00:	c7 42 08 00 00 00 00 	movl   $0x0,0x8(%edx)
4a5b07:	88 4a 0f             	mov    %cl,0xf(%edx)
4a5b0a:	88 1a                	mov    %bl,(%edx)
4a5b0c:	e8 ef d3 13 00       	call   0x5e2f00
4a5b11:	83 c4 0c             	add    $0xc,%esp
4a5b14:	33 c0                	xor    %eax,%eax
4a5b16:	5e                   	pop    %esi
4a5b17:	5b                   	pop    %ebx
4a5b18:	c3                   	ret
4a5b19:	cc                   	int3
4a5b1a:	cc                   	int3
4a5b1b:	cc                   	int3
4a5b1c:	cc                   	int3
4a5b1d:	cc                   	int3
4a5b1e:	cc                   	int3
4a5b1f:	cc                   	int3
4a5b20:	8b 4c 24 04          	mov    0x4(%esp),%ecx
4a5b24:	56                   	push   %esi
4a5b25:	0f b6 01             	movzbl (%ecx),%eax
4a5b28:	c1 e8 03             	shr    $0x3,%eax
4a5b2b:	83 e0 07             	and    $0x7,%eax
4a5b2e:	8d 34 45 02 00 00 00 	lea    0x2(,%eax,2),%esi
4a5b35:	39 74 24 10          	cmp    %esi,0x10(%esp)
4a5b39:	73 04                	jae    0x4a5b3f
4a5b3b:	33 c0                	xor    %eax,%eax
4a5b3d:	5e                   	pop    %esi
4a5b3e:	c3                   	ret
4a5b3f:	56                   	push   %esi
4a5b40:	83 c1 10             	add    $0x10,%ecx
4a5b43:	51                   	push   %ecx
4a5b44:	ff 74 24 14          	push   0x14(%esp)
4a5b48:	e8 b3 d3 13 00       	call   0x5e2f00
4a5b4d:	83 c4 0c             	add    $0xc,%esp
4a5b50:	8b c6                	mov    %esi,%eax
4a5b52:	5e                   	pop    %esi
4a5b53:	c3                   	ret
4a5b54:	cc                   	int3
4a5b55:	cc                   	int3
4a5b56:	cc                   	int3
4a5b57:	cc                   	int3
4a5b58:	cc                   	int3
4a5b59:	cc                   	int3
4a5b5a:	cc                   	int3
4a5b5b:	cc                   	int3
4a5b5c:	cc                   	int3
4a5b5d:	cc                   	int3
4a5b5e:	cc                   	int3
4a5b5f:	cc                   	int3
4a5b60:	53                   	push   %ebx
4a5b61:	8b 5c 24 0c          	mov    0xc(%esp),%ebx
4a5b65:	33 c0                	xor    %eax,%eax
4a5b67:	56                   	push   %esi
4a5b68:	57                   	push   %edi
4a5b69:	8b 7c 24 10          	mov    0x10(%esp),%edi
4a5b6d:	be 08 00 00 00       	mov    $0x8,%esi
4a5b72:	0f b6 4c 3e 07       	movzbl 0x7(%esi,%edi,1),%ecx
4a5b77:	4e                   	dec    %esi
4a5b78:	03 c1                	add    %ecx,%eax
4a5b7a:	0f b6 d3             	movzbl %bl,%edx
4a5b7d:	03 c2                	add    %edx,%eax
4a5b7f:	c1 eb 08             	shr    $0x8,%ebx
4a5b82:	88 44 3e 08          	mov    %al,0x8(%esi,%edi,1)
4a5b86:	c1 e8 08             	shr    $0x8,%eax
4a5b89:	85 f6                	test   %esi,%esi
4a5b8b:	74 08                	je     0x4a5b95
4a5b8d:	85 db                	test   %ebx,%ebx
4a5b8f:	75 e1                	jne    0x4a5b72
4a5b91:	85 c0                	test   %eax,%eax
4a5b93:	75 dd                	jne    0x4a5b72
4a5b95:	5f                   	pop    %edi
4a5b96:	5e                   	pop    %esi
4a5b97:	5b                   	pop    %ebx
4a5b98:	c3                   	ret
4a5b99:	cc                   	int3
4a5b9a:	cc                   	int3
4a5b9b:	cc                   	int3
4a5b9c:	cc                   	int3
4a5b9d:	cc                   	int3
4a5b9e:	cc                   	int3
4a5b9f:	cc                   	int3
4a5ba0:	b8 48 00 00 00       	mov    $0x48,%eax
4a5ba5:	e8 46 b9 13 00       	call   0x5e14f0
4a5baa:	a1 d4 89 72 00       	mov    0x7289d4,%eax
4a5baf:	33 c4                	xor    %esp,%eax
4a5bb1:	89 44 24 44          	mov    %eax,0x44(%esp)
4a5bb5:	8b 4c 24 4c          	mov    0x4c(%esp),%ecx