505ae1:	8b 75 e4             	mov    -0x1c(%ebp),%esi
505ae4:	0f af 11             	imul   (%ecx),%edx
505ae7:	0f bf 4b 20          	movswl 0x20(%ebx),%ecx
505aeb:	0f af 4e 40          	imul   0x40(%esi),%ecx
505aef:	89 4d f0             	mov    %ecx,-0x10(%ebp)
505af2:	0f bf 4b 60          	movswl 0x60(%ebx),%ecx
505af6:	8b 75 e4             	mov    -0x1c(%ebp),%esi
505af9:	0f af 8e c0 00 00 00 	imul   0xc0(%esi),%ecx
505b00:	89 4d ec             	mov    %ecx,-0x14(%ebp)
505b03:	8b 4d f0             	mov    -0x10(%ebp),%ecx
505b06:	8b f1                	mov    %ecx,%esi
505b08:	c1 e1 04             	shl    $0x4,%ecx
505b0b:	2b ce                	sub    %esi,%ecx
505b0d:	c1 e1 02             	shl    $0x2,%ecx
505b10:	2b ce                	sub    %esi,%ecx
505b12:	c1 e2 0e             	shl    $0xe,%edx
505b15:	8d 0c ce             	lea    (%esi,%ecx,8),%ecx
505b18:	c1 e1 05             	shl    $0x5,%ecx
505b1b:	03 ce                	add    %esi,%ecx
505b1d:	8b 75 ec             	mov    -0x14(%ebp),%esi
505b20:	8b fe                	mov    %esi,%edi
505b22:	f7 de                	neg    %esi
505b24:	8d 34 b7             	lea    (%edi,%esi,4),%esi
505b27:	c1 e6 04             	shl    $0x4,%esi
505b2a:	2b f7                	sub    %edi,%esi
505b2c:	c1 e6 06             	shl    $0x6,%esi
505b2f:	03 f7                	add    %edi,%esi
505b31:	03 f6                	add    %esi,%esi
505b33:	03 ce                	add    %esi,%ecx
505b35:	8d 34 11             	lea    (%ecx,%edx,1),%esi
505b38:	2b d1                	sub    %ecx,%edx
505b3a:	89 75 fc             	mov    %esi,-0x4(%ebp)
505b3d:	89 55 f8             	mov    %edx,-0x8(%ebp)
505b40:	0f bf 53 70          	movswl 0x70(%ebx),%edx
505b44:	8b 4d e4             	mov    -0x1c(%ebp),%ecx
505b47:	0f af 91 e0 00 00 00 	imul   0xe0(%ecx),%edx
505b4e:	89 55 f4             	mov    %edx,-0xc(%ebp)
505b51:	0f bf 53 50          	movswl 0x50(%ebx),%edx
505b55:	8b 4d e4             	mov    -0x1c(%ebp),%ecx
505b58:	0f af 91 a0 00 00 00 	imul   0xa0(%ecx),%edx
505b5f:	89 55 f0             	mov    %edx,-0x10(%ebp)
505b62:	0f bf 53 30          	movswl 0x30(%ebx),%edx
505b66:	8b 4d e4             	mov    -0x1c(%ebp),%ecx
505b69:	0f af 51 60          	imul   0x60(%ecx),%edx
505b6d:	89 55 ec             	mov    %edx,-0x14(%ebp)
505b70:	0f bf 53 10          	movswl 0x10(%ebx),%edx
505b74:	8b 4d e4             	mov    -0x1c(%ebp),%ecx
505b77:	0f af 51 20          	imul   0x20(%ecx),%edx
505b7b:	89 55 e8             	mov    %edx,-0x18(%ebp)
505b7e:	8b 55 f4             	mov    -0xc(%ebp),%edx
505b81:	8b ca                	mov    %edx,%ecx
505b83:	f7 da                	neg    %edx
505b85:	8d 14 d1             	lea    (%ecx,%edx,8),%edx
505b88:	8d 14 91             	lea    (%ecx,%edx,4),%edx
505b8b:	c1 e2 05             	shl    $0x5,%edx
505b8e:	2b d1                	sub    %ecx,%edx
505b90:	69 4d f0 75 2e 00 00 	imul   $0x2e75,-0x10(%ebp),%ecx
505b97:	03 d2                	add    %edx,%edx
505b99:	03 d1                	add    %ecx,%edx
505b9b:	69 4d ec 79 ba ff ff 	imul   $0xffffba79,-0x14(%ebp),%ecx
505ba2:	03 d1                	add    %ecx,%edx
505ba4:	8b 4d e8             	mov    -0x18(%ebp),%ecx
505ba7:	8b f1                	mov    %ecx,%esi
505ba9:	c1 e1 04             	shl    $0x4,%ecx
505bac:	03 ce                	add    %esi,%ecx
505bae:	c1 e1 06             	shl    $0x6,%ecx
505bb1:	2b ce                	sub    %esi,%ecx
505bb3:	8d 0c ce             	lea    (%esi,%ecx,8),%ecx
505bb6:	03 d1                	add    %ecx,%edx
505bb8:	8b 4d f4             	mov    -0xc(%ebp),%ecx
505bbb:	8b f1                	mov    %ecx,%esi
505bbd:	f7 d9                	neg    %ecx
505bbf:	c1 e1 06             	shl    $0x6,%ecx
505bc2:	2b ce                	sub    %esi,%ecx
505bc4:	c1 e1 02             	shl    $0x2,%ecx
505bc7:	2b ce                	sub    %esi,%ecx
505bc9:	69 75 f0 c2 ec ff ff 	imul   $0xffffecc2,-0x10(%ebp),%esi
505bd0:	c1 e1 04             	shl    $0x4,%ecx
505bd3:	03 ce                	add    %esi,%ecx
505bd5:	69 75 ec cd 1c 00 00 	imul   $0x1ccd,-0x14(%ebp),%esi
505bdc:	03 ce                	add    %esi,%ecx
505bde:	8b 75 e8             	mov    -0x18(%ebp),%esi
505be1:	8b fe                	mov    %esi,%edi
505be3:	8d 34 b7             	lea    (%edi,%esi,4),%esi
505be6:	8d 34 f7             	lea    (%edi,%esi,8),%esi
505be9:	c1 e6 08             	shl    $0x8,%esi
505bec:	03 f7                	add    %edi,%esi
505bee:	8d 34 77             	lea    (%edi,%esi,2),%esi
505bf1:	03 ce                	add    %esi,%ecx
505bf3:	8b 75 fc             	mov    -0x4(%ebp),%esi
505bf6:	03 f1                	add    %ecx,%esi
505bf8:	81 c6 00 08 00 00    	add    $0x800,%esi
505bfe:	c1 fe 0c             	sar    $0xc,%esi
505c01:	89 30                	mov    %esi,(%eax)
505c03:	8b 75 fc             	mov    -0x4(%ebp),%esi
505c06:	2b f1                	sub    %ecx,%esi
505c08:	81 c6 00 08 00 00    	add    $0x800,%esi
505c0e:	c1 fe 0c             	sar    $0xc,%esi
505c11:	89 70 60             	mov    %esi,0x60(%eax)
505c14:	8b 4d f8             	mov    -0x8(%ebp),%ecx
505c17:	03 ca                	add    %edx,%ecx
505c19:	81 c1 00 08 00 00    	add    $0x800,%ecx
505c1f:	c1 f9 0c             	sar    $0xc,%ecx
505c22:	89 48 20             	mov    %ecx,0x20(%eax)
505c25:	8b 4d f8             	mov    -0x8(%ebp),%ecx
505c28:	2b ca                	sub    %edx,%ecx
505c2a:	81 c1 00 08 00 00    	add    $0x800,%ecx
505c30:	c1 f9 0c             	sar    $0xc,%ecx
505c33:	89 48 40             	mov    %ecx,0x40(%eax)
505c36:	83 c3 02             	add    $0x2,%ebx
505c39:	83 45 e4 04          	addl   $0x4,-0x1c(%ebp)
505c3d:	83 c0 04             	add    $0x4,%eax
505c40:	ff 4d dc             	decl   -0x24(%ebp)
505c43:	83 7d dc 00          	cmpl   $0x0,-0x24(%ebp)
505c47:	0f 8f 4e fe ff ff    	jg     0x505a9b
505c4d:	8d 85 58 ff ff ff    	lea    -0xa8(%ebp),%eax
505c53:	33 d2                	xor    %edx,%edx
505c55:	89 55 dc             	mov    %edx,-0x24(%ebp)
505c58:	8b 55 0c             	mov    0xc(%ebp),%edx
505c5b:	8b ca                	mov    %edx,%ecx
505c5d:	89 4d d8             	mov    %ecx,-0x28(%ebp)
505c60:	8b 55 d8             	mov    -0x28(%ebp),%edx
505c63:	8b 32                	mov    (%edx),%esi
505c65:	8b 50 04             	mov    0x4(%eax),%edx
505c68:	0b 50 08             	or     0x8(%eax),%edx
505c6b:	03 75 08             	add    0x8(%ebp),%esi
505c6e:	0b 50 0c             	or     0xc(%eax),%edx
505c71:	0b 50 14             	or     0x14(%eax),%edx
505c74:	0b 50 18             	or     0x18(%eax),%edx
505c77:	0b 50 1c             	or     0x1c(%eax),%edx
505c7a:	75 27                	jne    0x505ca3
505c7c:	8b 08                	mov    (%eax),%ecx
505c7e:	83 c1 10             	add    $0x10,%ecx
505c81:	c1 f9 05             	sar    $0x5,%ecx
505c84:	81 e1 ff 03 00 00    	and    $0x3ff,%ecx
505c8a:	8b 55 e0             	mov    -0x20(%ebp),%edx
505c8d:	8a 14 0a             	mov    (%edx,%ecx,1),%dl
505c90:	88 16                	mov    %dl,(%esi)
505c92:	88 56 01             	mov    %dl,0x1(%esi)
505c95:	88 56 02             	mov    %dl,0x2(%esi)
505c98:	88 56 03             	mov    %dl,0x3(%esi)
505c9b:	83 c0 20             	add    $0x20,%eax
505c9e:	e9 42 01 00 00       	jmp    0x505de5
505ca3:	8b 48 08             	mov    0x8(%eax),%ecx
505ca6:	8b 10                	mov    (%eax),%edx
505ca8:	8b d9                	mov    %ecx,%ebx
505caa:	c1 e1 04             	shl    $0x4,%ecx
505cad:	2b cb                	sub    %ebx,%ecx
505caf:	c1 e1 02             	shl    $0x2,%ecx
505cb2:	2b cb                	sub    %ebx,%ecx
505cb4:	c1 e2 0e             	shl    $0xe,%edx
505cb7:	8d 0c cb             	lea    (%ebx,%ecx,8),%ecx
505cba:	c1 e1 05             	shl    $0x5,%ecx
505cbd:	03 cb                	add    %ebx,%ecx
505cbf:	8b 58 18             	mov    0x18(%eax),%ebx
505cc2:	8b fb                	mov    %ebx,%edi
505cc4:	f7 db                	neg    %ebx
505cc6:	8d 1c 9f             	lea    (%edi,%ebx,4),%ebx
505cc9:	c1 e3 04             	shl    $0x4,%ebx
505ccc:	2b df                	sub    %edi,%ebx
505cce:	c1 e3 06             	shl    $0x6,%ebx
505cd1:	03 df                	add    %edi,%ebx
505cd3:	03 db                	add    %ebx,%ebx
505cd5:	03 cb                	add    %ebx,%ecx
505cd7:	8d 1c 11             	lea    (%ecx,%edx,1),%ebx
505cda:	2b d1                	sub    %ecx,%edx
505cdc:	89 5d fc             	mov    %ebx,-0x4(%ebp)
505cdf:	89 55 f8             	mov    %edx,-0x8(%ebp)
505ce2:	8b 50 1c             	mov    0x1c(%eax),%edx
505ce5:	89 55 f4             	mov    %edx,-0xc(%ebp)
505ce8:	8b 48 14             	mov    0x14(%eax),%ecx
505ceb:	89 4d f0             	mov    %ecx,-0x10(%ebp)
505cee:	8b 50 0c             	mov    0xc(%eax),%edx
505cf1:	89 55 ec             	mov    %edx,-0x14(%ebp)
505cf4:	8b 48 04             	mov    0x4(%eax),%ecx
505cf7:	89 4d e8             	mov    %ecx,-0x18(%ebp)
505cfa:	8b 55 f4             	mov    -0xc(%ebp),%edx
505cfd:	8b ca                	mov    %edx,%ecx
505cff:	f7 da                	neg    %edx
505d01:	8d 14 d1             	lea    (%ecx,%edx,8),%edx
505d04:	8d 14 91             	lea    (%ecx,%edx,4),%edx
505d07:	c1 e2 05             	shl    $0x5,%edx
505d0a:	2b d1                	sub    %ecx,%edx
505d0c:	69 4d f0 75 2e 00 00 	imul   $0x2e75,-0x10(%ebp),%ecx
505d13:	03 d2                	add    %edx,%edx
505d15:	03 d1                	add    %ecx,%edx
505d17:	69 4d ec 79 ba ff ff 	imul   $0xffffba79,-0x14(%ebp),%ecx
505d1e:	03 d1                	add    %ecx,%edx
505d20:	8b 4d e8             	mov    -0x18(%ebp),%ecx
505d23:	8b d9                	mov    %ecx,%ebx
505d25:	c1 e1 04             	shl    $0x4,%ecx
505d28:	03 cb                	add    %ebx,%ecx
505d2a:	c1 e1 06             	shl    $0x6,%ecx
505d2d:	2b cb                	sub    %ebx,%ecx
505d2f:	8d 0c cb             	lea    (%ebx,%ecx,8),%ecx
505d32:	03 d1                	add    %ecx,%edx
505d34:	8b 4d f4             	mov    -0xc(%ebp),%ecx
505d37:	8b d9                	mov    %ecx,%ebx
505d39:	f7 d9                	neg    %ecx
505d3b:	c1 e1 06             	shl    $0x6,%ecx
505d3e:	2b cb                	sub    %ebx,%ecx
505d40:	c1 e1 02             	shl    $0x2,%ecx
505d43:	2b cb                	sub    %ebx,%ecx
505d45:	69 5d f0 c2 ec ff ff 	imul   $0xffffecc2,-0x10(%ebp),%ebx
505d4c:	c1 e1 04             	shl    $0x4,%ecx
505d4f:	03 cb                	add    %ebx,%ecx
505d51:	69 5d ec cd 1c 00 00 	imul   $0x1ccd,-0x14(%ebp),%ebx
505d58:	03 cb                	add    %ebx,%ecx
505d5a:	8b 5d e8             	mov    -0x18(%ebp),%ebx
505d5d:	8b fb                	mov    %ebx,%edi
505d5f:	8d 1c 9f             	lea    (%edi,%ebx,4),%ebx
505d62:	8d 1c df             	lea    (%edi,%ebx,8),%ebx
505d65:	c1 e3 08             	shl    $0x8,%ebx
505d68:	03 df                	add    %edi,%ebx
505d6a:	8d 1c 5f             	lea    (%edi,%ebx,2),%ebx
505d6d:	8b 7d e0             	mov    -0x20(%ebp),%edi
505d70:	03 cb                	add    %ebx,%ecx
505d72:	8b 5d fc             	mov    -0x4(%ebp),%ebx
505d75:	03 d9                	add    %ecx,%ebx
505d77:	81 c3 00 00 04 00    	add    $0x40000,%ebx
505d7d:	c1 fb 13             	sar    $0x13,%ebx
505d80:	81 e3 ff 03 00 00    	and    $0x3ff,%ebx
505d86:	8a 1c 1f             	mov    (%edi,%ebx,1),%bl
505d89:	88 1e                	mov    %bl,(%esi)
505d8b:	8b 5d fc             	mov    -0x4(%ebp),%ebx
505d8e:	2b d9                	sub    %ecx,%ebx
505d90:	8b 4d e0             	mov    -0x20(%ebp),%ecx
505d93:	81 c3 00 00 04 00    	add    $0x40000,%ebx
505d99:	c1 fb 13             	sar    $0x13,%ebx
505d9c:	81 e3 ff 03 00 00    	and    $0x3ff,%ebx
505da2:	8a 0c 19             	mov    (%ecx,%ebx,1),%cl
505da5:	88 4e 03             	mov    %cl,0x3(%esi)
505da8:	8b 4d f8             	mov    -0x8(%ebp),%ecx
505dab:	8b 5d e0             	mov    -0x20(%ebp),%ebx
505dae:	03 ca                	add    %edx,%ecx
505db0:	81 c1 00 00 04 00    	add    $0x40000,%ecx
505db6:	c1 f9 13             	sar    $0x13,%ecx
505db9:	81 e1 ff 03 00 00    	and    $0x3ff,%ecx
505dbf:	8a 0c 0b             	mov    (%ebx,%ecx,1),%cl
505dc2:	88 4e 01             	mov    %cl,0x1(%esi)
505dc5:	8b 4d f8             	mov    -0x8(%ebp),%ecx
505dc8:	2b ca                	sub    %edx,%ecx
505dca:	8b 55 e0             	mov    -0x20(%ebp),%edx
505dcd:	81 c1 00 00 04 00    	add    $0x40000,%ecx
505dd3:	c1 f9 13             	sar    $0x13,%ecx
505dd6:	81 e1 ff 03 00 00    	and    $0x3ff,%ecx
505ddc:	83 c0 20             	add    $0x20,%eax
505ddf:	8a 14 0a             	mov    (%edx,%ecx,1),%dl
505de2:	88 56 02             	mov    %dl,0x2(%esi)
505de5:	ff 45 dc             	incl   -0x24(%ebp)
505de8:	83 45 d8 04          	addl   $0x4,-0x28(%ebp)
505dec:	83 7d dc 04          	cmpl   $0x4,-0x24(%ebp)
505df0:	0f 8c 6a fe ff ff    	jl     0x505c60
505df6:	5f                   	pop    %edi
505df7:	5e                   	pop    %esi
505df8:	5b                   	pop    %ebx
505df9:	8b e5                	mov    %ebp,%esp
505dfb:	5d                   	pop    %ebp
505dfc:	c2 08 00             	ret    $0x8
505dff:	90                   	nop
505e00:	55                   	push   %ebp
505e01:	8b ec                	mov    %esp,%ebp
505e03:	83 c4 ac             	add    $0xffffffac,%esp
505e06:	53                   	push   %ebx
505e07:	56                   	push   %esi
505e08:	57                   	push   %edi
505e09:	8b 80 3c 01 00 00    	mov    0x13c(%eax),%eax
505e0f:	05 80 00 00 00       	add    $0x80,%eax
505e14:	89 45 f4             	mov    %eax,-0xc(%ebp)
505e17:	8d 45 ac             	lea    -0x54(%ebp),%eax
505e1a:	8b 52 50             	mov    0x50(%edx),%edx
505e1d:	89 55 f8             	mov    %edx,-0x8(%ebp)
505e20:	ba 08 00 00 00       	mov    $0x8,%edx
505e25:	83 fa 06             	cmp    $0x6,%edx
505e28:	0f 84 c6 00 00 00    	je     0x505ef4
505e2e:	83 fa 04             	cmp    $0x4,%edx
505e31:	0f 84 bd 00 00 00    	je     0x505ef4
505e37:	83 fa 02             	cmp    $0x2,%edx
505e3a:	0f 84 b4 00 00 00    	je     0x505ef4
505e40:	66 8b 59 10          	mov    0x10(%ecx),%bx
505e44:	66 0b 59 30          	or     0x30(%ecx),%bx
505e48:	66 0b 59 50          	or     0x50(%ecx),%bx
505e4c:	66 0b 59 70          	or     0x70(%ecx),%bx
505e50:	75 16                	jne    0x505e68
505e52:	0f bf 19             	movswl (%ecx),%ebx
505e55:	8b 75 f8             	mov    -0x8(%ebp),%esi
505e58:	0f af 1e             	imul   (%esi),%ebx
505e5b:	c1 e3 02             	shl    $0x2,%ebx
505e5e:	89 18                	mov    %ebx,(%eax)
505e60:	89 58 20             	mov    %ebx,0x20(%eax)
505e63:	e9 8c 00 00 00       	jmp    0x505ef4
505e68:	0f bf 19             	movswl (%ecx),%ebx
505e6b:	8b 75 f8             	mov    -0x8(%ebp),%esi
505e6e:	0f af 1e             	imul   (%esi),%ebx
505e71:	c1 e3 0f             	shl    $0xf,%ebx
505e74:	89 5d fc             	mov    %ebx,-0x4(%ebp)
505e77:	0f bf 59 70          	movswl 0x70(%ecx),%ebx
505e7b:	8b 75 f8             	mov    -0x8(%ebp),%esi
505e7e:	8b 7d f8             	mov    -0x8(%ebp),%edi
505e81:	0f af 9e e0 00 00 00 	imul   0xe0(%esi),%ebx
505e88:	69 f3 ee e8 ff ff    	imul   $0xffffe8ee,%ebx,%esi
505e8e:	0f bf 59 50          	movswl 0x50(%ecx),%ebx
505e92:	0f af 9f a0 00 00 00 	imul   0xa0(%edi),%ebx
505e99:	69 db 37 1b 00 00    	imul   $0x1b37,%ebx,%ebx
505e9f:	03 f3                	add    %ebx,%esi
505ea1:	8b 7d f8             	mov    -0x8(%ebp),%edi
505ea4:	0f bf 59 30          	movswl 0x30(%ecx),%ebx
505ea8:	0f af 5f 60          	imul   0x60(%edi),%ebx
505eac:	69 db 46 d7 ff ff    	imul   $0xffffd746,%ebx,%ebx
505eb2:	03 f3                	add    %ebx,%esi
505eb4:	8b 7d f8             	mov    -0x8(%ebp),%edi
505eb7:	0f bf 59 10          	movswl 0x10(%ecx),%ebx
505ebb:	0f af 5f 20          	imul   0x20(%edi),%ebx
505ebf:	8b fb                	mov    %ebx,%edi
505ec1:	c1 e3 03             	shl    $0x3,%ebx
505ec4:	2b df                	sub    %edi,%ebx
505ec6:	8d 1c 9f             	lea    (%edi,%ebx,4),%ebx
505ec9:	c1 e3 08             	shl    $0x8,%ebx
505ecc:	2b df                	sub    %edi,%ebx
505ece:	c1 e3 02             	shl    $0x2,%ebx
505ed1:	03 f3                	add    %ebx,%esi
505ed3:	8b 5d fc             	mov    -0x4(%ebp),%ebx
505ed6:	03 de                	add    %esi,%ebx
505ed8:	81 c3 00 10 00 00    	add    $0x1000,%ebx
505ede:	c1 fb 0d             	sar    $0xd,%ebx
505ee1:	89 18                	mov    %ebx,(%eax)
505ee3:	8b 5d fc             	mov    -0x4(%ebp),%ebx
505ee6:	2b de                	sub    %esi,%ebx
505ee8:	81 c3 00 10 00 00    	add    $0x1000,%ebx
505eee:	c1 fb 0d             	sar    $0xd,%ebx
505ef1:	89 58 20             	mov    %ebx,0x20(%eax)
505ef4:	83 c1 02             	add    $0x2,%ecx
505ef7:	83 45 f8 04          	addl   $0x4,-0x8(%ebp)
505efb:	83 c0 04             	add    $0x4,%eax
505efe:	4a                   	dec    %edx
505eff:	85 d2                	test   %edx,%edx
505f01:	0f 8f 1e ff ff ff    	jg     0x505e25
505f07:	8b 4d 0c             	mov    0xc(%ebp),%ecx
505f0a:	8d 45 ac             	lea    -0x54(%ebp),%eax
505f0d:	89 4d ec             	mov    %ecx,-0x14(%ebp)
505f10:	33 d2                	xor    %edx,%edx
505f12:	8b 4d ec             	mov    -0x14(%ebp),%ecx
505f15:	8b 58 04             	mov    0x4(%eax),%ebx
505f18:	0b 58 0c             	or     0xc(%eax),%ebx
505f1b:	0b 58 14             	or     0x14(%eax),%ebx
505f1e:	8b 09                	mov    (%ecx),%ecx
505f20:	03 4d 08             	add    0x8(%ebp),%ecx
505f23:	0b 58 1c             	or     0x1c(%eax),%ebx
505f26:	75 27                	jne    0x505f4f
505f28:	8b 18                	mov    (%eax),%ebx