5058bf:	8a 0c 0b             	mov    (%ebx,%ecx,1),%cl
5058c2:	88 0a                	mov    %cl,(%edx)
5058c4:	88 4a 01             	mov    %cl,0x1(%edx)
5058c7:	88 4a 02             	mov    %cl,0x2(%edx)
5058ca:	88 4a 03             	mov    %cl,0x3(%edx)
5058cd:	88 4a 04             	mov    %cl,0x4(%edx)
5058d0:	88 4a 05             	mov    %cl,0x5(%edx)
5058d3:	88 4a 06             	mov    %cl,0x6(%edx)
5058d6:	88 4a 07             	mov    %cl,0x7(%edx)
5058d9:	83 c0 20             	add    $0x20,%eax
5058dc:	e9 70 01 00 00       	jmp    0x505a51
5058e1:	8b 08                	mov    (%eax),%ecx
5058e3:	8b 70 10             	mov    0x10(%eax),%esi
5058e6:	8b d9                	mov    %ecx,%ebx
5058e8:	2b ce                	sub    %esi,%ecx
5058ea:	03 de                	add    %esi,%ebx
5058ec:	8b 70 08             	mov    0x8(%eax),%esi
5058ef:	8b fe                	mov    %esi,%edi
5058f1:	03 78 18             	add    0x18(%eax),%edi
5058f4:	89 7d d8             	mov    %edi,-0x28(%ebp)
5058f7:	2b 70 18             	sub    0x18(%eax),%esi
5058fa:	69 f6 6a 01 00 00    	imul   $0x16a,%esi,%esi
505900:	c1 fe 08             	sar    $0x8,%esi
505903:	8b 7d d8             	mov    -0x28(%ebp),%edi
505906:	2b 75 d8             	sub    -0x28(%ebp),%esi
505909:	03 fb                	add    %ebx,%edi
50590b:	89 7d f0             	mov    %edi,-0x10(%ebp)
50590e:	2b 5d d8             	sub    -0x28(%ebp),%ebx
505911:	89 5d e4             	mov    %ebx,-0x1c(%ebp)
505914:	8d 1c 0e             	lea    (%esi,%ecx,1),%ebx
505917:	2b ce                	sub    %esi,%ecx
505919:	89 5d ec             	mov    %ebx,-0x14(%ebp)
50591c:	89 4d e8             	mov    %ecx,-0x18(%ebp)
50591f:	8b 48 14             	mov    0x14(%eax),%ecx
505922:	8b 78 04             	mov    0x4(%eax),%edi
505925:	8b d9                	mov    %ecx,%ebx
505927:	8b f1                	mov    %ecx,%esi
505929:	8b 48 04             	mov    0x4(%eax),%ecx
50592c:	03 48 1c             	add    0x1c(%eax),%ecx
50592f:	03 58 0c             	add    0xc(%eax),%ebx
505932:	2b 70 0c             	sub    0xc(%eax),%esi
505935:	2b 78 1c             	sub    0x1c(%eax),%edi
505938:	89 7d d0             	mov    %edi,-0x30(%ebp)
50593b:	8d 3c 0b             	lea    (%ebx,%ecx,1),%edi
50593e:	2b cb                	sub    %ebx,%ecx
505940:	89 7d dc             	mov    %edi,-0x24(%ebp)
505943:	8b 5d d0             	mov    -0x30(%ebp),%ebx
505946:	69 c9 6a 01 00 00    	imul   $0x16a,%ecx,%ecx
50594c:	03 de                	add    %esi,%ebx
50594e:	69 f6 63 fd ff ff    	imul   $0xfffffd63,%esi,%esi
505954:	8b fb                	mov    %ebx,%edi
505956:	c1 e3 04             	shl    $0x4,%ebx
505959:	2b df                	sub    %edi,%ebx
50595b:	c1 e3 02             	shl    $0x2,%ebx
50595e:	2b df                	sub    %edi,%ebx
505960:	c1 fe 08             	sar    $0x8,%esi
505963:	c1 f9 08             	sar    $0x8,%ecx
505966:	8d 1c df             	lea    (%edi,%ebx,8),%ebx
505969:	c1 fb 08             	sar    $0x8,%ebx
50596c:	89 5d d4             	mov    %ebx,-0x2c(%ebp)
50596f:	03 75 d4             	add    -0x2c(%ebp),%esi
505972:	8b 5d d0             	mov    -0x30(%ebp),%ebx
505975:	8b fb                	mov    %ebx,%edi
505977:	2b 75 dc             	sub    -0x24(%ebp),%esi
50597a:	c1 e3 04             	shl    $0x4,%ebx
50597d:	2b ce                	sub    %esi,%ecx
50597f:	03 df                	add    %edi,%ebx
505981:	8d 1c 9f             	lea    (%edi,%ebx,4),%ebx
505984:	8d 1c 9f             	lea    (%edi,%ebx,4),%ebx
505987:	c1 fb 08             	sar    $0x8,%ebx
50598a:	2b 5d d4             	sub    -0x2c(%ebp),%ebx
50598d:	8d 1c 19             	lea    (%ecx,%ebx,1),%ebx
505990:	89 5d e0             	mov    %ebx,-0x20(%ebp)
505993:	8b 5d f0             	mov    -0x10(%ebp),%ebx
505996:	8b 7d c8             	mov    -0x38(%ebp),%edi
505999:	03 5d dc             	add    -0x24(%ebp),%ebx
50599c:	c1 fb 05             	sar    $0x5,%ebx
50599f:	81 e3 ff 03 00 00    	and    $0x3ff,%ebx
5059a5:	8a 1c 1f             	mov    (%edi,%ebx,1),%bl
5059a8:	88 1a                	mov    %bl,(%edx)
5059aa:	8b 5d f0             	mov    -0x10(%ebp),%ebx
5059ad:	8b 7d c8             	mov    -0x38(%ebp),%edi
5059b0:	2b 5d dc             	sub    -0x24(%ebp),%ebx
5059b3:	c1 fb 05             	sar    $0x5,%ebx
5059b6:	81 e3 ff 03 00 00    	and    $0x3ff,%ebx
5059bc:	8a 1c 1f             	mov    (%edi,%ebx,1),%bl
5059bf:	88 5a 07             	mov    %bl,0x7(%edx)
5059c2:	8b 5d ec             	mov    -0x14(%ebp),%ebx
5059c5:	8b 7d c8             	mov    -0x38(%ebp),%edi
5059c8:	03 de                	add    %esi,%ebx
5059ca:	c1 fb 05             	sar    $0x5,%ebx
5059cd:	81 e3 ff 03 00 00    	and    $0x3ff,%ebx
5059d3:	8a 1c 1f             	mov    (%edi,%ebx,1),%bl
5059d6:	88 5a 01             	mov    %bl,0x1(%edx)
5059d9:	8b 5d ec             	mov    -0x14(%ebp),%ebx
5059dc:	2b de                	sub    %esi,%ebx
5059de:	8b 75 c8             	mov    -0x38(%ebp),%esi
5059e1:	c1 fb 05             	sar    $0x5,%ebx
5059e4:	81 e3 ff 03 00 00    	and    $0x3ff,%ebx
5059ea:	8a 1c 1e             	mov    (%esi,%ebx,1),%bl
5059ed:	88 5a 06             	mov    %bl,0x6(%edx)
5059f0:	8b 5d e8             	mov    -0x18(%ebp),%ebx
5059f3:	8b 75 c8             	mov    -0x38(%ebp),%esi
5059f6:	03 d9                	add    %ecx,%ebx
5059f8:	c1 fb 05             	sar    $0x5,%ebx
5059fb:	81 e3 ff 03 00 00    	and    $0x3ff,%ebx
505a01:	8a 1c 1e             	mov    (%esi,%ebx,1),%bl
505a04:	88 5a 02             	mov    %bl,0x2(%edx)
505a07:	8b 5d e8             	mov    -0x18(%ebp),%ebx
505a0a:	2b d9                	sub    %ecx,%ebx
505a0c:	8b 4d c8             	mov    -0x38(%ebp),%ecx
505a0f:	c1 fb 05             	sar    $0x5,%ebx
505a12:	81 e3 ff 03 00 00    	and    $0x3ff,%ebx
505a18:	8a 0c 19             	mov    (%ecx,%ebx,1),%cl
505a1b:	88 4a 05             	mov    %cl,0x5(%edx)
505a1e:	8b 4d e4             	mov    -0x1c(%ebp),%ecx
505a21:	8b 5d c8             	mov    -0x38(%ebp),%ebx
505a24:	03 4d e0             	add    -0x20(%ebp),%ecx
505a27:	c1 f9 05             	sar    $0x5,%ecx
505a2a:	81 e1 ff 03 00 00    	and    $0x3ff,%ecx
505a30:	8a 0c 0b             	mov    (%ebx,%ecx,1),%cl
505a33:	88 4a 04             	mov    %cl,0x4(%edx)
505a36:	8b 4d e4             	mov    -0x1c(%ebp),%ecx
505a39:	8b 5d c8             	mov    -0x38(%ebp),%ebx
505a3c:	2b 4d e0             	sub    -0x20(%ebp),%ecx
505a3f:	c1 f9 05             	sar    $0x5,%ecx
505a42:	81 e1 ff 03 00 00    	and    $0x3ff,%ecx
505a48:	83 c0 20             	add    $0x20,%eax
505a4b:	8a 0c 0b             	mov    (%ebx,%ecx,1),%cl
505a4e:	88 4a 03             	mov    %cl,0x3(%edx)
505a51:	ff 45 c4             	incl   -0x3c(%ebp)
505a54:	83 45 c0 04          	addl   $0x4,-0x40(%ebp)
505a58:	83 7d c4 08          	cmpl   $0x8,-0x3c(%ebp)
505a5c:	0f 8c 30 fe ff ff    	jl     0x505892
505a62:	5f                   	pop    %edi
505a63:	5e                   	pop    %esi
505a64:	5b                   	pop    %ebx
505a65:	8b e5                	mov    %ebp,%esp
505a67:	5d                   	pop    %ebp
505a68:	c2 08 00             	ret    $0x8
505a6b:	90                   	nop
505a6c:	55                   	push   %ebp
505a6d:	8b ec                	mov    %esp,%ebp
505a6f:	81 c4 58 ff ff ff    	add    $0xffffff58,%esp
505a75:	53                   	push   %ebx
505a76:	56                   	push   %esi
505a77:	57                   	push   %edi
505a78:	8b 80 3c 01 00 00    	mov    0x13c(%eax),%eax
505a7e:	05 80 00 00 00       	add    $0x80,%eax
505a83:	89 45 e0             	mov    %eax,-0x20(%ebp)
505a86:	8b d9                	mov    %ecx,%ebx
505a88:	8b 42 50             	mov    0x50(%edx),%eax
505a8b:	89 45 e4             	mov    %eax,-0x1c(%ebp)
505a8e:	8d 85 58 ff ff ff    	lea    -0xa8(%ebp),%eax
505a94:	c7 45 dc 08 00 00 00 	movl   $0x8,-0x24(%ebp)
505a9b:	83 7d dc 04          	cmpl   $0x4,-0x24(%ebp)
505a9f:	0f 84 91 01 00 00    	je     0x505c36
505aa5:	66 8b 53 10          	mov    0x10(%ebx),%dx
505aa9:	66 0b 53 20          	or     0x20(%ebx),%dx
505aad:	66 0b 53 30          	or     0x30(%ebx),%dx
505ab1:	66 0b 53 50          	or     0x50(%ebx),%dx
505ab5:	66 0b 53 60          	or     0x60(%ebx),%dx
505ab9:	66 0b 53 70          	or     0x70(%ebx),%dx
505abd:	75 1c                	jne    0x505adb
505abf:	0f bf 13             	movswl (%ebx),%edx
505ac2:	8b 4d e4             	mov    -0x1c(%ebp),%ecx
505ac5:	0f af 11             	imul   (%ecx),%edx
505ac8:	c1 e2 02             	shl    $0x2,%edx
505acb:	89 10                	mov    %edx,(%eax)
505acd:	89 50 20             	mov    %edx,0x20(%eax)
505ad0:	89 50 40             	mov    %edx,0x40(%eax)
505ad3:	89 50 60             	mov    %edx,0x60(%eax)
505ad6:	e9 5b 01 00 00       	jmp    0x505c36
505adb:	0f bf 13             	movswl (%ebx),%edx
505ade:	8b 4d e4             	mov    -0x1c(%ebp),%ecx
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