50b67e:	57                   	push   %edi
50b67f:	89 4d fc             	mov    %ecx,-0x4(%ebp)
50b682:	8b d8                	mov    %eax,%ebx
50b684:	8b 75 08             	mov    0x8(%ebp),%esi
50b687:	6a 00                	push   $0x0
50b689:	8b 83 e4 00 00 00    	mov    0xe4(%ebx),%eax
50b68f:	8b fa                	mov    %edx,%edi
50b691:	50                   	push   %eax
50b692:	8b ce                	mov    %esi,%ecx
50b694:	8b 53 18             	mov    0x18(%ebx),%edx
50b697:	52                   	push   %edx
50b698:	33 d2                	xor    %edx,%edx
50b69a:	8b 45 fc             	mov    -0x4(%ebp),%eax
50b69d:	e8 f2 c4 ff ff       	call   0x507b94
50b6a2:	8b 4f 1c             	mov    0x1c(%edi),%ecx
50b6a5:	c1 e1 03             	shl    $0x3,%ecx
50b6a8:	51                   	push   %ecx
50b6a9:	8b 4b 18             	mov    0x18(%ebx),%ecx
50b6ac:	8b 93 e4 00 00 00    	mov    0xe4(%ebx),%edx
50b6b2:	8b c6                	mov    %esi,%eax
50b6b4:	e8 db fd ff ff       	call   0x50b494
50b6b9:	5f                   	pop    %edi
50b6ba:	5e                   	pop    %esi
50b6bb:	5b                   	pop    %ebx
50b6bc:	59                   	pop    %ecx
50b6bd:	5d                   	pop    %ebp
50b6be:	c2 04 00             	ret    $0x4
50b6c1:	90                   	nop
50b6c2:	90                   	nop
50b6c3:	90                   	nop
50b6c4:	55                   	push   %ebp
50b6c5:	8b ec                	mov    %esp,%ebp
50b6c7:	83 c4 ec             	add    $0xffffffec,%esp
50b6ca:	53                   	push   %ebx
50b6cb:	56                   	push   %esi
50b6cc:	57                   	push   %edi
50b6cd:	89 55 fc             	mov    %edx,-0x4(%ebp)
50b6d0:	8b 55 fc             	mov    -0x4(%ebp),%edx
50b6d3:	8b d9                	mov    %ecx,%ebx
50b6d5:	8b 4a 1c             	mov    0x1c(%edx),%ecx
50b6d8:	c1 e1 03             	shl    $0x3,%ecx
50b6db:	89 4d f4             	mov    %ecx,-0xc(%ebp)
50b6de:	8b 55 f4             	mov    -0xc(%ebp),%edx
50b6e1:	03 d2                	add    %edx,%edx
50b6e3:	52                   	push   %edx
50b6e4:	8b 90 e4 00 00 00    	mov    0xe4(%eax),%edx
50b6ea:	8b 48 18             	mov    0x18(%eax),%ecx
50b6ed:	8b c3                	mov    %ebx,%eax
50b6ef:	e8 a0 fd ff ff       	call   0x50b494
50b6f4:	33 c9                	xor    %ecx,%ecx
50b6f6:	8b c3                	mov    %ebx,%eax
50b6f8:	89 4d f8             	mov    %ecx,-0x8(%ebp)
50b6fb:	89 45 ec             	mov    %eax,-0x14(%ebp)
50b6fe:	8b 55 08             	mov    0x8(%ebp),%edx
50b701:	8b ca                	mov    %edx,%ecx
50b703:	89 4d f0             	mov    %ecx,-0x10(%ebp)
50b706:	eb 3b                	jmp    0x50b743
50b708:	8b 45 f0             	mov    -0x10(%ebp),%eax
50b70b:	8b 4d ec             	mov    -0x14(%ebp),%ecx
50b70e:	33 f6                	xor    %esi,%esi
50b710:	8b 10                	mov    (%eax),%edx
50b712:	8b 01                	mov    (%ecx),%eax
50b714:	33 c9                	xor    %ecx,%ecx
50b716:	3b 75 f4             	cmp    -0xc(%ebp),%esi
50b719:	73 1d                	jae    0x50b738
50b71b:	0f b6 78 01          	movzbl 0x1(%eax),%edi
50b71f:	33 db                	xor    %ebx,%ebx
50b721:	46                   	inc    %esi
50b722:	8a 18                	mov    (%eax),%bl
50b724:	83 c0 02             	add    $0x2,%eax
50b727:	03 df                	add    %edi,%ebx
50b729:	03 d9                	add    %ecx,%ebx
50b72b:	83 f1 01             	xor    $0x1,%ecx
50b72e:	d1 fb                	sar    $1,%ebx
50b730:	88 1a                	mov    %bl,(%edx)
50b732:	42                   	inc    %edx
50b733:	3b 75 f4             	cmp    -0xc(%ebp),%esi
50b736:	72 e3                	jb     0x50b71b
50b738:	ff 45 f8             	incl   -0x8(%ebp)
50b73b:	83 45 ec 04          	addl   $0x4,-0x14(%ebp)
50b73f:	83 45 f0 04          	addl   $0x4,-0x10(%ebp)
50b743:	8b 45 fc             	mov    -0x4(%ebp),%eax
50b746:	8b 50 0c             	mov    0xc(%eax),%edx
50b749:	3b 55 f8             	cmp    -0x8(%ebp),%edx
50b74c:	7f ba                	jg     0x50b708
50b74e:	5f                   	pop    %edi
50b74f:	5e                   	pop    %esi
50b750:	5b                   	pop    %ebx
50b751:	8b e5                	mov    %ebp,%esp
50b753:	5d                   	pop    %ebp
50b754:	c2 04 00             	ret    $0x4
50b757:	90                   	nop
50b758:	55                   	push   %ebp
50b759:	8b ec                	mov    %esp,%ebp
50b75b:	83 c4 e8             	add    $0xffffffe8,%esp
50b75e:	53                   	push   %ebx
50b75f:	56                   	push   %esi
50b760:	57                   	push   %edi
50b761:	89 55 fc             	mov    %edx,-0x4(%ebp)
50b764:	8b 55 fc             	mov    -0x4(%ebp),%edx
50b767:	8b d9                	mov    %ecx,%ebx
50b769:	8b 4a 1c             	mov    0x1c(%edx),%ecx
50b76c:	c1 e1 03             	shl    $0x3,%ecx
50b76f:	89 4d f0             	mov    %ecx,-0x10(%ebp)
50b772:	8b 55 f0             	mov    -0x10(%ebp),%edx
50b775:	03 d2                	add    %edx,%edx
50b777:	52                   	push   %edx
50b778:	8b 90 e4 00 00 00    	mov    0xe4(%eax),%edx
50b77e:	8b 48 18             	mov    0x18(%eax),%ecx
50b781:	8b c3                	mov    %ebx,%eax
50b783:	e8 0c fd ff ff       	call   0x50b494
50b788:	33 c9                	xor    %ecx,%ecx
50b78a:	8b c3                	mov    %ebx,%eax
50b78c:	89 4d f8             	mov    %ecx,-0x8(%ebp)
50b78f:	89 45 e8             	mov    %eax,-0x18(%ebp)
50b792:	8b 55 08             	mov    0x8(%ebp),%edx
50b795:	8b ca                	mov    %edx,%ecx
50b797:	89 4d ec             	mov    %ecx,-0x14(%ebp)
50b79a:	eb 5e                	jmp    0x50b7fa
50b79c:	8b 45 ec             	mov    -0x14(%ebp),%eax
50b79f:	8b 55 e8             	mov    -0x18(%ebp),%edx
50b7a2:	33 db                	xor    %ebx,%ebx
50b7a4:	be 01 00 00 00       	mov    $0x1,%esi
50b7a9:	8b 08                	mov    (%eax),%ecx
50b7ab:	8b 02                	mov    (%edx),%eax
50b7ad:	8b 55 e8             	mov    -0x18(%ebp),%edx
50b7b0:	8b 52 04             	mov    0x4(%edx),%edx
50b7b3:	89 5d f4             	mov    %ebx,-0xc(%ebp)
50b7b6:	8b 5d f4             	mov    -0xc(%ebp),%ebx
50b7b9:	3b 5d f0             	cmp    -0x10(%ebp),%ebx
50b7bc:	73 31                	jae    0x50b7ef
50b7be:	0f b6 78 01          	movzbl 0x1(%eax),%edi
50b7c2:	33 db                	xor    %ebx,%ebx
50b7c4:	8a 18                	mov    (%eax),%bl
50b7c6:	83 c0 02             	add    $0x2,%eax
50b7c9:	03 df                	add    %edi,%ebx
50b7cb:	0f b6 3a             	movzbl (%edx),%edi
50b7ce:	03 df                	add    %edi,%ebx
50b7d0:	0f b6 7a 01          	movzbl 0x1(%edx),%edi
50b7d4:	03 df                	add    %edi,%ebx
50b7d6:	83 c2 02             	add    $0x2,%edx
50b7d9:	03 de                	add    %esi,%ebx
50b7db:	83 f6 03             	xor    $0x3,%esi
50b7de:	c1 fb 02             	sar    $0x2,%ebx
50b7e1:	88 19                	mov    %bl,(%ecx)
50b7e3:	41                   	inc    %ecx
50b7e4:	ff 45 f4             	incl   -0xc(%ebp)
50b7e7:	8b 5d f4             	mov    -0xc(%ebp),%ebx
50b7ea:	3b 5d f0             	cmp    -0x10(%ebp),%ebx
50b7ed:	72 cf                	jb     0x50b7be
50b7ef:	83 45 e8 08          	addl   $0x8,-0x18(%ebp)
50b7f3:	ff 45 f8             	incl   -0x8(%ebp)
50b7f6:	83 45 ec 04          	addl   $0x4,-0x14(%ebp)
50b7fa:	8b 45 fc             	mov    -0x4(%ebp),%eax
50b7fd:	8b 50 0c             	mov    0xc(%eax),%edx
50b800:	3b 55 f8             	cmp    -0x8(%ebp),%edx
50b803:	7f 97                	jg     0x50b79c
50b805:	5f                   	pop    %edi
50b806:	5e                   	pop    %esi
50b807:	5b                   	pop    %ebx
50b808:	8b e5                	mov    %ebp,%esp
50b80a:	5d                   	pop    %ebp
50b80b:	c2 04 00             	ret    $0x4
50b80e:	90                   	nop
50b80f:	90                   	nop
50b810:	55                   	push   %ebp
50b811:	8b ec                	mov    %esp,%ebp
50b813:	83 c4 d4             	add    $0xffffffd4,%esp
50b816:	53                   	push   %ebx
50b817:	56                   	push   %esi
50b818:	57                   	push   %edi
50b819:	8b d8                	mov    %eax,%ebx
50b81b:	89 55 fc             	mov    %edx,-0x4(%ebp)
50b81e:	8b f1                	mov    %ecx,%esi
50b820:	8b 45 fc             	mov    -0x4(%ebp),%eax
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