50b823:	8b 50 1c             	mov    0x1c(%eax),%edx
50b826:	8d 46 fc             	lea    -0x4(%esi),%eax
50b829:	c1 e2 03             	shl    $0x3,%edx
50b82c:	89 55 f0             	mov    %edx,-0x10(%ebp)
50b82f:	8b 4d f0             	mov    -0x10(%ebp),%ecx
50b832:	03 c9                	add    %ecx,%ecx
50b834:	51                   	push   %ecx
50b835:	8b 93 e4 00 00 00    	mov    0xe4(%ebx),%edx
50b83b:	8b 4b 18             	mov    0x18(%ebx),%ecx
50b83e:	83 c2 02             	add    $0x2,%edx
50b841:	e8 4e fc ff ff       	call   0x50b494
50b846:	8b 83 b8 00 00 00    	mov    0xb8(%ebx),%eax
50b84c:	b9 00 40 00 00       	mov    $0x4000,%ecx
50b851:	8b d0                	mov    %eax,%edx
50b853:	c1 e2 04             	shl    $0x4,%edx
50b856:	c1 e0 04             	shl    $0x4,%eax
50b859:	8d 14 92             	lea    (%edx,%edx,4),%edx
50b85c:	2b ca                	sub    %edx,%ecx
50b85e:	8b d6                	mov    %esi,%edx
50b860:	89 4d e0             	mov    %ecx,-0x20(%ebp)
50b863:	89 45 dc             	mov    %eax,-0x24(%ebp)
50b866:	33 c0                	xor    %eax,%eax
50b868:	89 45 f8             	mov    %eax,-0x8(%ebp)
50b86b:	89 55 d4             	mov    %edx,-0x2c(%ebp)
50b86e:	8b 4d 08             	mov    0x8(%ebp),%ecx
50b871:	8b c1                	mov    %ecx,%eax
50b873:	89 45 d8             	mov    %eax,-0x28(%ebp)
50b876:	e9 0b 02 00 00       	jmp    0x50ba86
50b87b:	8b 55 d8             	mov    -0x28(%ebp),%edx
50b87e:	8b 0a                	mov    (%edx),%ecx
50b880:	89 4d ec             	mov    %ecx,-0x14(%ebp)
50b883:	8b 45 d4             	mov    -0x2c(%ebp),%eax
50b886:	8b 5d d4             	mov    -0x2c(%ebp),%ebx
50b889:	8b 55 d4             	mov    -0x2c(%ebp),%edx
50b88c:	8b 4d d4             	mov    -0x2c(%ebp),%ecx
50b88f:	8b 00                	mov    (%eax),%eax
50b891:	8b 73 08             	mov    0x8(%ebx),%esi
50b894:	8b 52 04             	mov    0x4(%edx),%edx
50b897:	33 db                	xor    %ebx,%ebx
50b899:	0f b6 78 01          	movzbl 0x1(%eax),%edi
50b89d:	8a 18                	mov    (%eax),%bl
50b89f:	8b 49 fc             	mov    -0x4(%ecx),%ecx
50b8a2:	03 df                	add    %edi,%ebx
50b8a4:	0f b6 3a             	movzbl (%edx),%edi
50b8a7:	03 df                	add    %edi,%ebx
50b8a9:	0f b6 7a 01          	movzbl 0x1(%edx),%edi
50b8ad:	03 df                	add    %edi,%ebx
50b8af:	89 5d e8             	mov    %ebx,-0x18(%ebp)
50b8b2:	33 db                	xor    %ebx,%ebx
50b8b4:	0f b6 79 01          	movzbl 0x1(%ecx),%edi
50b8b8:	8a 19                	mov    (%ecx),%bl
50b8ba:	03 df                	add    %edi,%ebx
50b8bc:	0f b6 3e             	movzbl (%esi),%edi
50b8bf:	03 df                	add    %edi,%ebx
50b8c1:	0f b6 7e 01          	movzbl 0x1(%esi),%edi
50b8c5:	03 df                	add    %edi,%ebx
50b8c7:	0f b6 38             	movzbl (%eax),%edi
50b8ca:	03 df                	add    %edi,%ebx
50b8cc:	0f b6 78 02          	movzbl 0x2(%eax),%edi
50b8d0:	03 df                	add    %edi,%ebx
50b8d2:	83 c0 02             	add    $0x2,%eax
50b8d5:	0f b6 3a             	movzbl (%edx),%edi
50b8d8:	03 df                	add    %edi,%ebx
50b8da:	0f b6 7a 02          	movzbl 0x2(%edx),%edi
50b8de:	03 df                	add    %edi,%ebx
50b8e0:	83 c2 02             	add    $0x2,%edx
50b8e3:	89 5d e4             	mov    %ebx,-0x1c(%ebp)
50b8e6:	8b 5d e4             	mov    -0x1c(%ebp),%ebx
50b8e9:	01 5d e4             	add    %ebx,-0x1c(%ebp)
50b8ec:	0f b6 79 02          	movzbl 0x2(%ecx),%edi
50b8f0:	33 db                	xor    %ebx,%ebx
50b8f2:	8a 19                	mov    (%ecx),%bl
50b8f4:	83 c1 02             	add    $0x2,%ecx
50b8f7:	03 df                	add    %edi,%ebx
50b8f9:	0f b6 3e             	movzbl (%esi),%edi
50b8fc:	03 df                	add    %edi,%ebx
50b8fe:	0f b6 7e 02          	movzbl 0x2(%esi),%edi
50b902:	03 df                	add    %edi,%ebx
50b904:	83 c6 02             	add    $0x2,%esi
50b907:	01 5d e4             	add    %ebx,-0x1c(%ebp)
50b90a:	8b 5d e8             	mov    -0x18(%ebp),%ebx
50b90d:	8b 7d e4             	mov    -0x1c(%ebp),%edi
50b910:	0f af 7d dc          	imul   -0x24(%ebp),%edi
50b914:	0f af 5d e0          	imul   -0x20(%ebp),%ebx
50b918:	03 df                	add    %edi,%ebx
50b91a:	89 5d e8             	mov    %ebx,-0x18(%ebp)
50b91d:	8b 5d e8             	mov    -0x18(%ebp),%ebx
50b920:	8b 7d ec             	mov    -0x14(%ebp),%edi
50b923:	81 c3 00 80 00 00    	add    $0x8000,%ebx
50b929:	c1 fb 10             	sar    $0x10,%ebx
50b92c:	88 1f                	mov    %bl,(%edi)
50b92e:	ff 45 ec             	incl   -0x14(%ebp)
50b931:	8b 5d f0             	mov    -0x10(%ebp),%ebx
50b934:	83 eb 02             	sub    $0x2,%ebx
50b937:	89 5d f4             	mov    %ebx,-0xc(%ebp)
50b93a:	83 7d f4 00          	cmpl   $0x0,-0xc(%ebp)
50b93e:	0f 86 a8 00 00 00    	jbe    0x50b9ec
50b944:	0f b6 78 01          	movzbl 0x1(%eax),%edi
50b948:	33 db                	xor    %ebx,%ebx
50b94a:	8a 18                	mov    (%eax),%bl
50b94c:	03 df                	add    %edi,%ebx
50b94e:	0f b6 3a             	movzbl (%edx),%edi
50b951:	03 df                	add    %edi,%ebx
50b953:	0f b6 7a 01          	movzbl 0x1(%edx),%edi
50b957:	03 df                	add    %edi,%ebx
50b959:	89 5d e8             	mov    %ebx,-0x18(%ebp)
50b95c:	33 db                	xor    %ebx,%ebx
50b95e:	0f b6 79 01          	movzbl 0x1(%ecx),%edi
50b962:	8a 19                	mov    (%ecx),%bl
50b964:	03 df                	add    %edi,%ebx
50b966:	0f b6 3e             	movzbl (%esi),%edi
50b969:	03 df                	add    %edi,%ebx
50b96b:	0f b6 7e 01          	movzbl 0x1(%esi),%edi
50b96f:	03 df                	add    %edi,%ebx
50b971:	0f b6 78 ff          	movzbl -0x1(%eax),%edi
50b975:	03 df                	add    %edi,%ebx
50b977:	0f b6 78 02          	movzbl 0x2(%eax),%edi
50b97b:	03 df                	add    %edi,%ebx
50b97d:	83 c0 02             	add    $0x2,%eax
50b980:	0f b6 7a ff          	movzbl -0x1(%edx),%edi
50b984:	03 df                	add    %edi,%ebx
50b986:	0f b6 7a 02          	movzbl 0x2(%edx),%edi
50b98a:	03 df                	add    %edi,%ebx
50b98c:	83 c2 02             	add    $0x2,%edx
50b98f:	89 5d e4             	mov    %ebx,-0x1c(%ebp)
50b992:	8b 5d e4             	mov    -0x1c(%ebp),%ebx
50b995:	01 5d e4             	add    %ebx,-0x1c(%ebp)
50b998:	0f b6 79 02          	movzbl 0x2(%ecx),%edi
50b99c:	33 db                	xor    %ebx,%ebx
50b99e:	8a 59 ff             	mov    -0x1(%ecx),%bl
50b9a1:	83 c1 02             	add    $0x2,%ecx
50b9a4:	03 df                	add    %edi,%ebx
50b9a6:	0f b6 7e ff          	movzbl -0x1(%esi),%edi
50b9aa:	03 df                	add    %edi,%ebx
50b9ac:	0f b6 7e 02          	movzbl 0x2(%esi),%edi
50b9b0:	03 df                	add    %edi,%ebx
50b9b2:	83 c6 02             	add    $0x2,%esi
50b9b5:	01 5d e4             	add    %ebx,-0x1c(%ebp)
50b9b8:	8b 5d e8             	mov    -0x18(%ebp),%ebx
50b9bb:	8b 7d e4             	mov    -0x1c(%ebp),%edi
50b9be:	0f af 7d dc          	imul   -0x24(%ebp),%edi
50b9c2:	0f af 5d e0          	imul   -0x20(%ebp),%ebx
50b9c6:	03 df                	add    %edi,%ebx
50b9c8:	89 5d e8             	mov    %ebx,-0x18(%ebp)
50b9cb:	8b 5d e8             	mov    -0x18(%ebp),%ebx
50b9ce:	8b 7d ec             	mov    -0x14(%ebp),%edi
50b9d1:	81 c3 00 80 00 00    	add    $0x8000,%ebx
50b9d7:	c1 fb 10             	sar    $0x10,%ebx
50b9da:	88 1f                	mov    %bl,(%edi)
50b9dc:	ff 45 ec             	incl   -0x14(%ebp)
50b9df:	ff 4d f4             	decl   -0xc(%ebp)
50b9e2:	83 7d f4 00          	cmpl   $0x0,-0xc(%ebp)
50b9e6:	0f 87 58 ff ff ff    	ja     0x50b944
50b9ec:	0f b6 78 01          	movzbl 0x1(%eax),%edi
50b9f0:	33 db                	xor    %ebx,%ebx
50b9f2:	8a 18                	mov    (%eax),%bl
50b9f4:	03 df                	add    %edi,%ebx
50b9f6:	0f b6 3a             	movzbl (%edx),%edi
50b9f9:	03 df                	add    %edi,%ebx
50b9fb:	0f b6 7a 01          	movzbl 0x1(%edx),%edi
50b9ff:	03 df                	add    %edi,%ebx
50ba01:	89 5d e8             	mov    %ebx,-0x18(%ebp)
50ba04:	33 db                	xor    %ebx,%ebx
50ba06:	0f b6 79 01          	movzbl 0x1(%ecx),%edi
50ba0a:	8a 19                	mov    (%ecx),%bl
50ba0c:	03 df                	add    %edi,%ebx
50ba0e:	0f b6 3e             	movzbl (%esi),%edi
50ba11:	03 df                	add    %edi,%ebx
50ba13:	0f b6 7e 01          	movzbl 0x1(%esi),%edi
50ba17:	03 df                	add    %edi,%ebx
50ba19:	0f b6 78 ff          	movzbl -0x1(%eax),%edi
50ba1d:	0f b6 40 01          	movzbl 0x1(%eax),%eax
50ba21:	03 df                	add    %edi,%ebx
50ba23:	03 d8                	add    %eax,%ebx
50ba25:	33 c0                	xor    %eax,%eax
50ba27:	8a 42 ff             	mov    -0x1(%edx),%al
50ba2a:	0f b6 52 01          	movzbl 0x1(%edx),%edx
50ba2e:	03 d8                	add    %eax,%ebx
50ba30:	03 da                	add    %edx,%ebx
50ba32:	33 d2                	xor    %edx,%edx
50ba34:	89 5d e4             	mov    %ebx,-0x1c(%ebp)
50ba37:	8b 45 e4             	mov    -0x1c(%ebp),%eax
50ba3a:	01 45 e4             	add    %eax,-0x1c(%ebp)
50ba3d:	33 c0                	xor    %eax,%eax
50ba3f:	8a 51 ff             	mov    -0x1(%ecx),%dl
50ba42:	8a 46 ff             	mov    -0x1(%esi),%al
50ba45:	0f b6 49 01          	movzbl 0x1(%ecx),%ecx
50ba49:	03 d1                	add    %ecx,%edx
50ba4b:	33 c9                	xor    %ecx,%ecx
50ba4d:	8a 4e 01             	mov    0x1(%esi),%cl
50ba50:	03 d0                	add    %eax,%edx
50ba52:	03 d1                	add    %ecx,%edx
50ba54:	01 55 e4             	add    %edx,-0x1c(%ebp)
50ba57:	8b 55 e8             	mov    -0x18(%ebp),%edx
50ba5a:	8b 45 e4             	mov    -0x1c(%ebp),%eax
50ba5d:	0f af 45 dc          	imul   -0x24(%ebp),%eax
50ba61:	0f af 55 e0          	imul   -0x20(%ebp),%edx
50ba65:	03 d0                	add    %eax,%edx
50ba67:	89 55 e8             	mov    %edx,-0x18(%ebp)
50ba6a:	8b 55 e8             	mov    -0x18(%ebp),%edx
50ba6d:	8b 4d ec             	mov    -0x14(%ebp),%ecx
50ba70:	81 c2 00 80 00 00    	add    $0x8000,%edx
50ba76:	c1 fa 10             	sar    $0x10,%edx
50ba79:	88 11                	mov    %dl,(%ecx)
50ba7b:	83 45 d4 08          	addl   $0x8,-0x2c(%ebp)
50ba7f:	ff 45 f8             	incl   -0x8(%ebp)
50ba82:	83 45 d8 04          	addl   $0x4,-0x28(%ebp)
50ba86:	8b 45 fc             	mov    -0x4(%ebp),%eax
50ba89:	8b 50 0c             	mov    0xc(%eax),%edx
50ba8c:	3b 55 f8             	cmp    -0x8(%ebp),%edx
50ba8f:	0f 8f e6 fd ff ff    	jg     0x50b87b
50ba95:	5f                   	pop    %edi
50ba96:	5e                   	pop    %esi
50ba97:	5b                   	pop    %ebx
50ba98:	8b e5                	mov    %ebp,%esp
50ba9a:	5d                   	pop    %ebp
50ba9b:	c2 04 00             	ret    $0x4
50ba9e:	90                   	nop
50ba9f:	90                   	nop
50baa0:	55                   	push   %ebp
50baa1:	8b ec                	mov    %esp,%ebp
50baa3:	83 c4 cc             	add    $0xffffffcc,%esp
50baa6:	53                   	push   %ebx
50baa7:	56                   	push   %esi
50baa8:	8b d8                	mov    %eax,%ebx
50baaa:	89 55 fc             	mov    %edx,-0x4(%ebp)
50baad:	8b 45 fc             	mov    -0x4(%ebp),%eax
50bab0:	8b f1                	mov    %ecx,%esi
50bab2:	8b 50 1c             	mov    0x1c(%eax),%edx
50bab5:	8d 46 fc             	lea    -0x4(%esi),%eax
50bab8:	c1 e2 03             	shl    $0x3,%edx
50babb:	89 55 f0             	mov    %edx,-0x10(%ebp)
50babe:	8b 4d f0             	mov    -0x10(%ebp),%ecx
50bac1:	51                   	push   %ecx
50bac2:	8b 93 e4 00 00 00    	mov    0xe4(%ebx),%edx
50bac8:	8b 4b 18             	mov    0x18(%ebx),%ecx
50bacb:	83 c2 02             	add    $0x2,%edx
50bace:	e8 c1 f9 ff ff       	call   0x50b494
50bad3:	8b 83 b8 00 00 00    	mov    0xb8(%ebx),%eax
50bad9:	b9 00 00 01 00       	mov    $0x10000,%ecx
50bade:	8b d0                	mov    %eax,%edx
50bae0:	c1 e2 09             	shl    $0x9,%edx
50bae3:	2b ca                	sub    %edx,%ecx
50bae5:	8b d6                	mov    %esi,%edx
50bae7:	c1 e0 06             	shl    $0x6,%eax
50baea:	89 4d dc             	mov    %ecx,-0x24(%ebp)
50baed:	89 45 d8             	mov    %eax,-0x28(%ebp)
50baf0:	33 c0                	xor    %eax,%eax
50baf2:	89 45 f8             	mov    %eax,-0x8(%ebp)
50baf5:	89 55 cc             	mov    %edx,-0x34(%ebp)
50baf8:	8b 4d 08             	mov    0x8(%ebp),%ecx
50bafb:	8b c1                	mov    %ecx,%eax
50bafd:	89 45 d0             	mov    %eax,-0x30(%ebp)
50bb00:	e9 14 01 00 00       	jmp    0x50bc19
50bb05:	8b 55 d0             	mov    -0x30(%ebp),%edx
50bb08:	8b 0a                	mov    (%edx),%ecx
50bb0a:	89 4d e4             	mov    %ecx,-0x1c(%ebp)
50bb0d:	8b 45 cc             	mov    -0x34(%ebp),%eax
50bb10:	8b 55 cc             	mov    -0x34(%ebp),%edx
50bb13:	8b 08                	mov    (%eax),%ecx
50bb15:	8b 42 fc             	mov    -0x4(%edx),%eax
50bb18:	89 45 ec             	mov    %eax,-0x14(%ebp)
50bb1b:	8b 55 cc             	mov    -0x34(%ebp),%edx
50bb1e:	8b 42 04             	mov    0x4(%edx),%eax
50bb21:	89 45 e8             	mov    %eax,-0x18(%ebp)
50bb24:	33 c0                	xor    %eax,%eax
50bb26:	8b 55 ec             	mov    -0x14(%ebp),%edx
50bb29:	8b 5d e8             	mov    -0x18(%ebp),%ebx
50bb2c:	8a 01                	mov    (%ecx),%al
50bb2e:	41                   	inc    %ecx
50bb2f:	0f b6 1b             	movzbl (%ebx),%ebx
50bb32:	0f b6 12             	movzbl (%edx),%edx
50bb35:	ff 45 e8             	incl   -0x18(%ebp)
50bb38:	ff 45 ec             	incl   -0x14(%ebp)
50bb3b:	03 d3                	add    %ebx,%edx
50bb3d:	8b 5d ec             	mov    -0x14(%ebp),%ebx
50bb40:	03 d0                	add    %eax,%edx
50bb42:	0f b6 33             	movzbl (%ebx),%esi
50bb45:	8b 5d e8             	mov    -0x18(%ebp),%ebx
50bb48:	0f b6 1b             	movzbl (%ebx),%ebx
50bb4b:	03 f3                	add    %ebx,%esi
50bb4d:	33 db                	xor    %ebx,%ebx
50bb4f:	8a 19                	mov    (%ecx),%bl
50bb51:	03 f3                	add    %ebx,%esi
50bb53:	8b da                	mov    %edx,%ebx
50bb55:	2b d8                	sub    %eax,%ebx
50bb57:	03 da                	add    %edx,%ebx
50bb59:	03 de                	add    %esi,%ebx
50bb5b:	89 5d e0             	mov    %ebx,-0x20(%ebp)
50bb5e:	0f af 45 dc          	imul   -0x24(%ebp),%eax
50bb62:	8b 5d e0             	mov    -0x20(%ebp),%ebx
50bb65:	0f af 5d d8          	imul   -0x28(%ebp),%ebx
50bb69:	03 c3                	add    %ebx,%eax
50bb6b:	8b 5d e4             	mov    -0x1c(%ebp),%ebx
50bb6e:	05 00 80 00 00       	add    $0x8000,%eax
50bb73:	c1 f8 10             	sar    $0x10,%eax
50bb76:	88 03                	mov    %al,(%ebx)
50bb78:	ff 45 e4             	incl   -0x1c(%ebp)
50bb7b:	89 55 d4             	mov    %edx,-0x2c(%ebp)
50bb7e:	8b 45 f0             	mov    -0x10(%ebp),%eax
50bb81:	8b d6                	mov    %esi,%edx
50bb83:	83 e8 02             	sub    $0x2,%eax
50bb86:	89 45 f4             	mov    %eax,-0xc(%ebp)
50bb89:	83 7d f4 00          	cmpl   $0x0,-0xc(%ebp)
50bb8d:	76 56                	jbe    0x50bbe5
50bb8f:	33 c0                	xor    %eax,%eax
50bb91:	8a 01                	mov    (%ecx),%al
50bb93:	41                   	inc    %ecx
50bb94:	ff 45 ec             	incl   -0x14(%ebp)
50bb97:	ff 45 e8             	incl   -0x18(%ebp)
50bb9a:	8b 5d ec             	mov    -0x14(%ebp),%ebx
50bb9d:	0f b6 33             	movzbl (%ebx),%esi
50bba0:	8b 5d e8             	mov    -0x18(%ebp),%ebx
50bba3:	0f b6 1b             	movzbl (%ebx),%ebx
50bba6:	03 f3                	add    %ebx,%esi
50bba8:	33 db                	xor    %ebx,%ebx
50bbaa:	8a 19                	mov    (%ecx),%bl
50bbac:	03 f3                	add    %ebx,%esi
50bbae:	8b da                	mov    %edx,%ebx
50bbb0:	2b d8                	sub    %eax,%ebx
50bbb2:	03 5d d4             	add    -0x2c(%ebp),%ebx
50bbb5:	03 de                	add    %esi,%ebx
50bbb7:	89 5d e0             	mov    %ebx,-0x20(%ebp)
50bbba:	0f af 45 dc          	imul   -0x24(%ebp),%eax
50bbbe:	8b 5d e0             	mov    -0x20(%ebp),%ebx
50bbc1:	0f af 5d d8          	imul   -0x28(%ebp),%ebx
50bbc5:	03 c3                	add    %ebx,%eax
50bbc7:	8b 5d e4             	mov    -0x1c(%ebp),%ebx
50bbca:	05 00 80 00 00       	add    $0x8000,%eax
50bbcf:	c1 f8 10             	sar    $0x10,%eax
50bbd2:	88 03                	mov    %al,(%ebx)
50bbd4:	ff 45 e4             	incl   -0x1c(%ebp)
50bbd7:	89 55 d4             	mov    %edx,-0x2c(%ebp)
50bbda:	ff 4d f4             	decl   -0xc(%ebp)
50bbdd:	8b d6                	mov    %esi,%edx
50bbdf:	83 7d f4 00          	cmpl   $0x0,-0xc(%ebp)
50bbe3:	77 aa                	ja     0x50bb8f
50bbe5:	33 c0                	xor    %eax,%eax
50bbe7:	8a 01                	mov    (%ecx),%al
50bbe9:	8b ca                	mov    %edx,%ecx
50bbeb:	2b c8                	sub    %eax,%ecx
50bbed:	03 4d d4             	add    -0x2c(%ebp),%ecx
50bbf0:	03 d1                	add    %ecx,%edx
50bbf2:	89 55 e0             	mov    %edx,-0x20(%ebp)
50bbf5:	f7 6d dc             	imull  -0x24(%ebp)
50bbf8:	8b 55 e0             	mov    -0x20(%ebp),%edx
50bbfb:	8b 4d e4             	mov    -0x1c(%ebp),%ecx
50bbfe:	0f af 55 d8          	imul   -0x28(%ebp),%edx
50bc02:	03 c2                	add    %edx,%eax
50bc04:	05 00 80 00 00       	add    $0x8000,%eax