4f391c:	8b c6                	mov    %esi,%eax
4f391e:	03 45 30             	add    0x30(%ebp),%eax
4f3921:	13 4d 34             	adc    0x34(%ebp),%ecx
4f3924:	81 f9 00 00 00 20    	cmp    $0x20000000,%ecx
4f392a:	0f 87 b6 00 00 00    	ja     0x4f39e6
4f3930:	72 08                	jb     0x4f393a
4f3932:	85 c0                	test   %eax,%eax
4f3934:	0f 85 ac 00 00 00    	jne    0x4f39e6
4f393a:	53                   	push   %ebx
4f393b:	89 4d 34             	mov    %ecx,0x34(%ebp)
4f393e:	8b 8d 6c 01 00 00    	mov    0x16c(%ebp),%ecx
4f3944:	89 45 30             	mov    %eax,0x30(%ebp)
4f3947:	89 4c 24 18          	mov    %ecx,0x18(%esp)
4f394b:	57                   	push   %edi
4f394c:	8b 7c 24 20          	mov    0x20(%esp),%edi
4f3950:	85 c9                	test   %ecx,%ecx
4f3952:	74 37                	je     0x4f398b
4f3954:	85 f6                	test   %esi,%esi
4f3956:	0f 84 7a 00 00 00    	je     0x4f39d6
4f395c:	8a 07                	mov    (%edi),%al
4f395e:	4e                   	dec    %esi
4f395f:	30 44 29 40          	xor    %al,0x40(%ecx,%ebp,1)
4f3963:	47                   	inc    %edi
4f3964:	41                   	inc    %ecx
4f3965:	83 e1 0f             	and    $0xf,%ecx
4f3968:	89 4c 24 1c          	mov    %ecx,0x1c(%esp)
4f396c:	75 e6                	jne    0x4f3954
4f396e:	8d 45 60             	lea    0x60(%ebp),%eax
4f3971:	50                   	push   %eax
4f3972:	8d 5d 40             	lea    0x40(%ebp),%ebx
4f3975:	53                   	push   %ebx
4f3976:	ff 54 24 18          	call   *0x18(%esp)
4f397a:	8b 44 24 24          	mov    0x24(%esp),%eax
4f397e:	83 c4 08             	add    $0x8,%esp
4f3981:	8b 54 24 14          	mov    0x14(%esp),%edx
4f3985:	89 44 24 1c          	mov    %eax,0x1c(%esp)
4f3989:	eb 03                	jmp    0x4f398e
4f398b:	8d 5d 40             	lea    0x40(%ebp),%ebx
4f398e:	8b c6                	mov    %esi,%eax
4f3990:	8d 4d 60             	lea    0x60(%ebp),%ecx
4f3993:	83 e0 f0             	and    $0xfffffff0,%eax
4f3996:	89 44 24 14          	mov    %eax,0x14(%esp)
4f399a:	74 11                	je     0x4f39ad
4f399c:	50                   	push   %eax
4f399d:	57                   	push   %edi
4f399e:	51                   	push   %ecx
4f399f:	53                   	push   %ebx
4f39a0:	ff d2                	call   *%edx
4f39a2:	03 7c 24 24          	add    0x24(%esp),%edi
4f39a6:	83 c4 10             	add    $0x10,%esp
4f39a9:	2b 74 24 14          	sub    0x14(%esp),%esi
4f39ad:	85 f6                	test   %esi,%esi
4f39af:	74 21                	je     0x4f39d2
4f39b1:	8b ce                	mov    %esi,%ecx
4f39b3:	8a 07                	mov    (%edi),%al
4f39b5:	8d 7f 01             	lea    0x1(%edi),%edi
4f39b8:	30 03                	xor    %al,(%ebx)
4f39ba:	8d 5b 01             	lea    0x1(%ebx),%ebx
4f39bd:	83 ee 01             	sub    $0x1,%esi
4f39c0:	75 f1                	jne    0x4f39b3
4f39c2:	5f                   	pop    %edi
4f39c3:	5b                   	pop    %ebx
4f39c4:	5e                   	pop    %esi
4f39c5:	89 8d 6c 01 00 00    	mov    %ecx,0x16c(%ebp)
4f39cb:	33 c0                	xor    %eax,%eax
4f39cd:	5d                   	pop    %ebp
4f39ce:	83 c4 08             	add    $0x8,%esp
4f39d1:	c3                   	ret
4f39d2:	8b 4c 24 1c          	mov    0x1c(%esp),%ecx
4f39d6:	5f                   	pop    %edi
4f39d7:	5b                   	pop    %ebx
4f39d8:	5e                   	pop    %esi
4f39d9:	89 8d 6c 01 00 00    	mov    %ecx,0x16c(%ebp)
4f39df:	33 c0                	xor    %eax,%eax
4f39e1:	5d                   	pop    %ebp
4f39e2:	83 c4 08             	add    $0x8,%esp
4f39e5:	c3                   	ret
4f39e6:	5e                   	pop    %esi
4f39e7:	83 c8 ff             	or     $0xffffffff,%eax
4f39ea:	5d                   	pop    %ebp
4f39eb:	83 c4 08             	add    $0x8,%esp
4f39ee:	c3                   	ret
4f39ef:	cc                   	int3
4f39f0:	b8 28 00 00 00       	mov    $0x28,%eax
4f39f5:	e8 b6 dd 0d 00       	call   0x5d17b0
4f39fa:	55                   	push   %ebp
4f39fb:	8b 6c 24 3c          	mov    0x3c(%esp),%ebp
4f39ff:	33 c9                	xor    %ecx,%ecx
4f3a01:	56                   	push   %esi
4f3a02:	8b 74 24 34          	mov    0x34(%esp),%esi
4f3a06:	8b 86 70 01 00 00    	mov    0x170(%esi),%eax
4f3a0c:	89 44 24 28          	mov    %eax,0x28(%esp)
4f3a10:	8b 86 74 01 00 00    	mov    0x174(%esi),%eax
4f3a16:	89 44 24 24          	mov    %eax,0x24(%esp)
4f3a1a:	8b 86 64 01 00 00    	mov    0x164(%esi),%eax
4f3a20:	89 44 24 1c          	mov    %eax,0x1c(%esp)
4f3a24:	8b c5                	mov    %ebp,%eax
4f3a26:	03 46 38             	add    0x38(%esi),%eax
4f3a29:	13 4e 3c             	adc    0x3c(%esi),%ecx
4f3a2c:	83 f9 0f             	cmp    $0xf,%ecx
4f3a2f:	0f 87 49 03 00 00    	ja     0x4f3d7e
4f3a35:	72 09                	jb     0x4f3a40
4f3a37:	83 f8 e0             	cmp    $0xffffffe0,%eax
4f3a3a:	0f 87 3e 03 00 00    	ja     0x4f3d7e
4f3a40:	83 be 6c 01 00 00 00 	cmpl   $0x0,0x16c(%esi)
4f3a47:	8b 96 68 01 00 00    	mov    0x168(%esi),%edx
4f3a4d:	89 4e 3c             	mov    %ecx,0x3c(%esi)
4f3a50:	8d 4e 40             	lea    0x40(%esi),%ecx
4f3a53:	53                   	push   %ebx
4f3a54:	57                   	push   %edi
4f3a55:	89 46 38             	mov    %eax,0x38(%esi)
4f3a58:	89 54 24 1c          	mov    %edx,0x1c(%esp)
4f3a5c:	89 4c 24 18          	mov    %ecx,0x18(%esp)
4f3a60:	0f 84 48 02 00 00    	je     0x4f3cae
4f3a66:	85 ed                	test   %ebp,%ebp
4f3a68:	75 20                	jne    0x4f3a8a
4f3a6a:	8d 46 60             	lea    0x60(%esi),%eax
4f3a6d:	50                   	push   %eax
4f3a6e:	8b 86 60 01 00 00    	mov    0x160(%esi),%eax
4f3a74:	51                   	push   %ecx
4f3a75:	ff d0                	call   *%eax
4f3a77:	83 c4 08             	add    $0x8,%esp
4f3a7a:	89 ae 6c 01 00 00    	mov    %ebp,0x16c(%esi)
4f3a80:	33 c0                	xor    %eax,%eax
4f3a82:	5f                   	pop    %edi
4f3a83:	5b                   	pop    %ebx
4f3a84:	5e                   	pop    %esi
4f3a85:	5d                   	pop    %ebp
4f3a86:	83 c4 28             	add    $0x28,%esp
4f3a89:	c3                   	ret
4f3a8a:	0f 10 01             	movups (%ecx),%xmm0
4f3a8d:	8d 86 78 01 00 00    	lea    0x178(%esi),%eax
4f3a93:	ba 10 00 00 00       	mov    $0x10,%edx
4f3a98:	89 44 24 28          	mov    %eax,0x28(%esp)
4f3a9c:	0f 11 00             	movups %xmm0,(%eax)
4f3a9f:	c7 01 00 00 00 00    	movl   $0x0,(%ecx)
4f3aa5:	c7 41 04 00 00 00 00 	movl   $0x0,0x4(%ecx)
4f3aac:	8d 4e 0c             	lea    0xc(%esi),%ecx
4f3aaf:	c7 46 48 00 00 00 00 	movl   $0x0,0x48(%esi)
4f3ab6:	c7 46 4c 00 00 00 00 	movl   $0x0,0x4c(%esi)
4f3abd:	8b 01                	mov    (%ecx),%eax
4f3abf:	0f c8                	bswap  %eax
4f3ac1:	89 44 24 10          	mov    %eax,0x10(%esp)
4f3ac5:	33 c0                	xor    %eax,%eax
4f3ac7:	89 54 24 1c          	mov    %edx,0x1c(%esp)
4f3acb:	c7 86 6c 01 00 00 00 	movl   $0x0,0x16c(%esi)
4f3ad2:	00 00 00
4f3ad5:	89 4c 24 20          	mov    %ecx,0x20(%esp)
4f3ad9:	89 44 24 14          	mov    %eax,0x14(%esp)
4f3add:	8b 5c 24 44          	mov    0x44(%esp),%ebx
4f3ae1:	8b 7c 24 40          	mov    0x40(%esp),%edi
4f3ae5:	8b 4c 24 18          	mov    0x18(%esp),%ecx
4f3ae9:	8d 46 60             	lea    0x60(%esi),%eax
4f3aec:	83 fd 10             	cmp    $0x10,%ebp
4f3aef:	72 1a                	jb     0x4f3b0b
4f3af1:	85 d2                	test   %edx,%edx
4f3af3:	74 16                	je     0x4f3b0b
4f3af5:	52                   	push   %edx
4f3af6:	ff 74 24 2c          	push   0x2c(%esp)
4f3afa:	50                   	push   %eax
4f3afb:	51                   	push   %ecx
4f3afc:	ff 54 24 34          	call   *0x34(%esp)
4f3b00:	83 c4 10             	add    $0x10,%esp
4f3b03:	c7 44 24 1c 00 00 00 	movl   $0x0,0x1c(%esp)
4f3b0a:	00
4f3b0b:	81 fd 00 0c 00 00    	cmp    $0xc00,%ebp
4f3b11:	0f 82 96 00 00 00    	jb     0x4f3bad
4f3b17:	b8 ab aa aa aa       	mov    $0xaaaaaaab,%eax
4f3b1c:	f7 e5                	mul    %ebp
4f3b1e:	c1 ea 0b             	shr    $0xb,%edx
4f3b21:	89 54 24 34          	mov    %edx,0x34(%esp)
4f3b25:	68 00 0c 00 00       	push   $0xc00
4f3b2a:	57                   	push   %edi
4f3b2b:	8d 46 60             	lea    0x60(%esi),%eax
4f3b2e:	50                   	push   %eax
4f3b2f:	ff 74 24 24          	push   0x24(%esp)
4f3b33:	ff 54 24 34          	call   *0x34(%esp)
4f3b37:	8b 6c 24 20          	mov    0x20(%esp),%ebp
4f3b3b:	83 c4 10             	add    $0x10,%esp
4f3b3e:	c7 44 24 28 c0 00 00 	movl   $0xc0,0x28(%esp)
4f3b45:	00
4f3b46:	ff 74 24 2c          	push   0x2c(%esp)
4f3b4a:	8d 46 10             	lea    0x10(%esi),%eax
4f3b4d:	50                   	push   %eax
4f3b4e:	56                   	push   %esi
4f3b4f:	ff 54 24 3c          	call   *0x3c(%esp)
4f3b53:	8b 4c 24 2c          	mov    0x2c(%esp),%ecx
4f3b57:	45                   	inc    %ebp
4f3b58:	8b c5                	mov    %ebp,%eax
4f3b5a:	83 c4 0c             	add    $0xc,%esp
4f3b5d:	0f c8                	bswap  %eax
4f3b5f:	89 01                	mov    %eax,(%ecx)
4f3b61:	8b 07                	mov    (%edi),%eax
4f3b63:	33 46 10             	xor    0x10(%esi),%eax
4f3b66:	89 03                	mov    %eax,(%ebx)
4f3b68:	8b 47 04             	mov    0x4(%edi),%eax
4f3b6b:	33 46 14             	xor    0x14(%esi),%eax
4f3b6e:	89 43 04             	mov    %eax,0x4(%ebx)
4f3b71:	8b 47 08             	mov    0x8(%edi),%eax
4f3b74:	33 46 18             	xor    0x18(%esi),%eax
4f3b77:	89 43 08             	mov    %eax,0x8(%ebx)
4f3b7a:	8b 47 0c             	mov    0xc(%edi),%eax
4f3b7d:	83 c7 10             	add    $0x10,%edi
4f3b80:	33 46 1c             	xor    0x1c(%esi),%eax
4f3b83:	89 43 0c             	mov    %eax,0xc(%ebx)
4f3b86:	83 c3 10             	add    $0x10,%ebx
4f3b89:	83 6c 24 28 01       	subl   $0x1,0x28(%esp)
4f3b8e:	75 b6                	jne    0x4f3b46
4f3b90:	89 6c 24 10          	mov    %ebp,0x10(%esp)
4f3b94:	8b 6c 24 48          	mov    0x48(%esp),%ebp
4f3b98:	81 ed 00 0c 00 00    	sub    $0xc00,%ebp
4f3b9e:	83 6c 24 34 01       	subl   $0x1,0x34(%esp)
4f3ba3:	89 6c 24 48          	mov    %ebp,0x48(%esp)
4f3ba7:	0f 85 78 ff ff ff    	jne    0x4f3b25
4f3bad:	8b c5                	mov    %ebp,%eax
4f3baf:	83 e0 f0             	and    $0xfffffff0,%eax
4f3bb2:	74 74                	je     0x4f3c28
4f3bb4:	50                   	push   %eax
4f3bb5:	57                   	push   %edi
4f3bb6:	8d 46 60             	lea    0x60(%esi),%eax
4f3bb9:	50                   	push   %eax
4f3bba:	ff 74 24 24          	push   0x24(%esp)
4f3bbe:	ff 54 24 34          	call   *0x34(%esp)
4f3bc2:	83 c4 10             	add    $0x10,%esp
4f3bc5:	83 fd 10             	cmp    $0x10,%ebp
4f3bc8:	72 5e                	jb     0x4f3c28
4f3bca:	8b c5                	mov    %ebp,%eax
4f3bcc:	8d 4e 10             	lea    0x10(%esi),%ecx
4f3bcf:	c1 e8 04             	shr    $0x4,%eax
4f3bd2:	89 44 24 48          	mov    %eax,0x48(%esp)
4f3bd6:	ff 74 24 2c          	push   0x2c(%esp)
4f3bda:	51                   	push   %ecx
4f3bdb:	56                   	push   %esi
4f3bdc:	ff 54 24 3c          	call   *0x3c(%esp)
4f3be0:	8b 44 24 1c          	mov    0x1c(%esp),%eax
4f3be4:	83 c4 0c             	add    $0xc,%esp
4f3be7:	8b 4c 24 20          	mov    0x20(%esp),%ecx
4f3beb:	40                   	inc    %eax
4f3bec:	89 44 24 10          	mov    %eax,0x10(%esp)
4f3bf0:	83 ed 10             	sub    $0x10,%ebp
4f3bf3:	0f c8                	bswap  %eax
4f3bf5:	89 01                	mov    %eax,(%ecx)
4f3bf7:	8d 4e 10             	lea    0x10(%esi),%ecx
4f3bfa:	8b 07                	mov    (%edi),%eax
4f3bfc:	33 01                	xor    (%ecx),%eax
4f3bfe:	89 03                	mov    %eax,(%ebx)
4f3c00:	8b 47 04             	mov    0x4(%edi),%eax
4f3c03:	33 46 14             	xor    0x14(%esi),%eax
4f3c06:	89 43 04             	mov    %eax,0x4(%ebx)
4f3c09:	8b 47 08             	mov    0x8(%edi),%eax
4f3c0c:	33 46 18             	xor    0x18(%esi),%eax
4f3c0f:	89 43 08             	mov    %eax,0x8(%ebx)
4f3c12:	8b 47 0c             	mov    0xc(%edi),%eax
4f3c15:	83 c7 10             	add    $0x10,%edi
4f3c18:	33 46 1c             	xor    0x1c(%esi),%eax
4f3c1b:	89 43 0c             	mov    %eax,0xc(%ebx)
4f3c1e:	83 c3 10             	add    $0x10,%ebx
4f3c21:	83 6c 24 48 01       	subl   $0x1,0x48(%esp)
4f3c26:	75 ae                	jne    0x4f3bd6
4f3c28:	85 ed                	test   %ebp,%ebp
4f3c2a:	74 6e                	je     0x4f3c9a
4f3c2c:	ff 74 24 2c          	push   0x2c(%esp)
4f3c30:	8d 46 10             	lea    0x10(%esi),%eax
4f3c33:	50                   	push   %eax
4f3c34:	56                   	push   %esi
4f3c35:	ff 54 24 3c          	call   *0x3c(%esp)
4f3c39:	8b 44 24 1c          	mov    0x1c(%esp),%eax
4f3c3d:	83 c4 0c             	add    $0xc,%esp
4f3c40:	8b 4c 24 20          	mov    0x20(%esp),%ecx
4f3c44:	40                   	inc    %eax
4f3c45:	0f c8                	bswap  %eax
4f3c47:	2b fb                	sub    %ebx,%edi
4f3c49:	89 01                	mov    %eax,(%ecx)
4f3c4b:	8b 44 24 14          	mov    0x14(%esp),%eax
4f3c4f:	8b 4c 24 1c          	mov    0x1c(%esp),%ecx
4f3c53:	8d 14 18             	lea    (%eax,%ebx,1),%edx
4f3c56:	83 c0 10             	add    $0x10,%eax
4f3c59:	03 c6                	add    %esi,%eax
4f3c5b:	89 44 24 34          	mov    %eax,0x34(%esp)
4f3c5f:	8d 86 78 01 00 00    	lea    0x178(%esi),%eax
4f3c65:	8b 74 24 34          	mov    0x34(%esp),%esi
4f3c69:	03 c1                	add    %ecx,%eax
4f3c6b:	03 cd                	add    %ebp,%ecx
4f3c6d:	89 44 24 48          	mov    %eax,0x48(%esp)
4f3c71:	89 4c 24 1c          	mov    %ecx,0x1c(%esp)
4f3c75:	8a 0c 17             	mov    (%edi,%edx,1),%cl
4f3c78:	8d 76 01             	lea    0x1(%esi),%esi
4f3c7b:	88 08                	mov    %cl,(%eax)
4f3c7d:	8d 52 01             	lea    0x1(%edx),%edx
4f3c80:	8a 46 ff             	mov    -0x1(%esi),%al
4f3c83:	32 c1                	xor    %cl,%al
4f3c85:	88 42 ff             	mov    %al,-0x1(%edx)
4f3c88:	8b 44 24 48          	mov    0x48(%esp),%eax
4f3c8c:	40                   	inc    %eax
4f3c8d:	89 44 24 48          	mov    %eax,0x48(%esp)
4f3c91:	83 ed 01             	sub    $0x1,%ebp
4f3c94:	75 df                	jne    0x4f3c75
4f3c96:	8b 74 24 3c          	mov    0x3c(%esp),%esi
4f3c9a:	8b 44 24 1c          	mov    0x1c(%esp),%eax
4f3c9e:	5f                   	pop    %edi
4f3c9f:	5b                   	pop    %ebx
4f3ca0:	89 86 68 01 00 00    	mov    %eax,0x168(%esi)
4f3ca6:	33 c0                	xor    %eax,%eax
4f3ca8:	5e                   	pop    %esi
4f3ca9:	5d                   	pop    %ebp
4f3caa:	83 c4 28             	add    $0x28,%esp
4f3cad:	c3                   	ret
4f3cae:	8d 86 78 01 00 00    	lea    0x178(%esi),%eax
4f3cb4:	89 4c 24 18          	mov    %ecx,0x18(%esp)
4f3cb8:	89 44 24 28          	mov    %eax,0x28(%esp)
4f3cbc:	8d 4e 0c             	lea    0xc(%esi),%ecx
4f3cbf:	8b 01                	mov    (%ecx),%eax
4f3cc1:	0f c8                	bswap  %eax
4f3cc3:	89 44 24 10          	mov    %eax,0x10(%esp)
4f3cc7:	8b c2                	mov    %edx,%eax
4f3cc9:	83 e0 0f             	and    $0xf,%eax
4f3ccc:	89 4c 24 20          	mov    %ecx,0x20(%esp)
4f3cd0:	89 44 24 14          	mov    %eax,0x14(%esp)
4f3cd4:	0f 84 03 fe ff ff    	je     0x4f3add
4f3cda:	8b 5c 24 44          	mov    0x44(%esp),%ebx
4f3cde:	8d 86 78 01 00 00    	lea    0x178(%esi),%eax
4f3ce4:	8b 7c 24 40          	mov    0x40(%esp),%edi
4f3ce8:	03 c2                	add    %edx,%eax
4f3cea:	89 44 24 48          	mov    %eax,0x48(%esp)
4f3cee:	66 90                	xchg   %ax,%ax
4f3cf0:	85 ed                	test   %ebp,%ebp
4f3cf2:	74 7a                	je     0x4f3d6e
4f3cf4:	8a 0f                	mov    (%edi),%cl
4f3cf6:	42                   	inc    %edx
4f3cf7:	88 08                	mov    %cl,(%eax)
4f3cf9:	47                   	inc    %edi
4f3cfa:	8b 44 24 14          	mov    0x14(%esp),%eax
4f3cfe:	4d                   	dec    %ebp
4f3cff:	8a 44 30 10          	mov    0x10(%eax,%esi,1),%al
4f3d03:	32 c1                	xor    %cl,%al
4f3d05:	8b 4c 24 14          	mov    0x14(%esp),%ecx
4f3d09:	88 03                	mov    %al,(%ebx)
4f3d0b:	41                   	inc    %ecx
4f3d0c:	8b 44 24 48          	mov    0x48(%esp),%eax
4f3d10:	43                   	inc    %ebx
4f3d11:	40                   	inc    %eax
4f3d12:	83 e1 0f             	and    $0xf,%ecx
4f3d15:	89 44 24 48          	mov    %eax,0x48(%esp)
4f3d19:	89 4c 24 14          	mov    %ecx,0x14(%esp)
4f3d1d:	75 d1                	jne    0x4f3cf0
4f3d1f:	52                   	push   %edx
4f3d20:	8d 86 78 01 00 00    	lea    0x178(%esi),%eax
4f3d26:	50                   	push   %eax
4f3d27:	8d 46 60             	lea    0x60(%esi),%eax
4f3d2a:	8d 4e 40             	lea    0x40(%esi),%ecx