500710:	8b 5d f0             	mov    -0x10(%ebp),%ebx
500713:	8a 14 1a             	mov    (%edx,%ebx,1),%dl
500716:	88 10                	mov    %dl,(%eax)
500718:	83 c0 03             	add    $0x3,%eax
50071b:	8b 55 e4             	mov    -0x1c(%ebp),%edx
50071e:	0f b6 12             	movzbl (%edx),%edx
500721:	ff 45 e4             	incl   -0x1c(%ebp)
500724:	8b 5d f4             	mov    -0xc(%ebp),%ebx
500727:	8d 3c 11             	lea    (%ecx,%edx,1),%edi
50072a:	8a 1c 1f             	mov    (%edi,%ebx,1),%bl
50072d:	88 58 02             	mov    %bl,0x2(%eax)
500730:	8d 1c 11             	lea    (%ecx,%edx,1),%ebx
500733:	8d 14 11             	lea    (%ecx,%edx,1),%edx
500736:	8a 1c 33             	mov    (%ebx,%esi,1),%bl
500739:	88 58 01             	mov    %bl,0x1(%eax)
50073c:	8b 5d f0             	mov    -0x10(%ebp),%ebx
50073f:	8a 14 1a             	mov    (%edx,%ebx,1),%dl
500742:	88 10                	mov    %dl,(%eax)
500744:	83 c0 03             	add    $0x3,%eax
500747:	8b 55 e0             	mov    -0x20(%ebp),%edx
50074a:	0f b6 12             	movzbl (%edx),%edx
50074d:	ff 45 e0             	incl   -0x20(%ebp)
500750:	8b 5d f4             	mov    -0xc(%ebp),%ebx
500753:	8d 3c 11             	lea    (%ecx,%edx,1),%edi
500756:	8a 1c 1f             	mov    (%edi,%ebx,1),%bl
500759:	8b 7d e8             	mov    -0x18(%ebp),%edi
50075c:	88 5f 02             	mov    %bl,0x2(%edi)
50075f:	8d 1c 11             	lea    (%ecx,%edx,1),%ebx
500762:	8b 7d e8             	mov    -0x18(%ebp),%edi
500765:	8d 14 11             	lea    (%ecx,%edx,1),%edx
500768:	8a 1c 33             	mov    (%ebx,%esi,1),%bl
50076b:	88 5f 01             	mov    %bl,0x1(%edi)
50076e:	8b 5d f0             	mov    -0x10(%ebp),%ebx
500771:	8a 14 1a             	mov    (%edx,%ebx,1),%dl
500774:	8b 5d e8             	mov    -0x18(%ebp),%ebx
500777:	88 13                	mov    %dl,(%ebx)
500779:	83 45 e8 03          	addl   $0x3,-0x18(%ebp)
50077d:	8b 55 e0             	mov    -0x20(%ebp),%edx
500780:	0f b6 12             	movzbl (%edx),%edx
500783:	ff 45 e0             	incl   -0x20(%ebp)
500786:	8b 5d f4             	mov    -0xc(%ebp),%ebx
500789:	8d 3c 11             	lea    (%ecx,%edx,1),%edi
50078c:	8a 1c 1f             	mov    (%edi,%ebx,1),%bl
50078f:	8b 7d e8             	mov    -0x18(%ebp),%edi
500792:	88 5f 02             	mov    %bl,0x2(%edi)
500795:	8d 1c 11             	lea    (%ecx,%edx,1),%ebx
500798:	8d 14 11             	lea    (%ecx,%edx,1),%edx
50079b:	8a 1c 33             	mov    (%ebx,%esi,1),%bl
50079e:	8b 75 e8             	mov    -0x18(%ebp),%esi
5007a1:	88 5e 01             	mov    %bl,0x1(%esi)
5007a4:	8b 5d f0             	mov    -0x10(%ebp),%ebx
5007a7:	8a 14 1a             	mov    (%edx,%ebx,1),%dl
5007aa:	8b 5d e8             	mov    -0x18(%ebp),%ebx
5007ad:	88 13                	mov    %dl,(%ebx)
5007af:	83 45 e8 03          	addl   $0x3,-0x18(%ebp)
5007b3:	ff 4d d4             	decl   -0x2c(%ebp)
5007b6:	83 7d d4 00          	cmpl   $0x0,-0x2c(%ebp)
5007ba:	0f 87 f3 fe ff ff    	ja     0x5006b3
5007c0:	8b 55 fc             	mov    -0x4(%ebp),%edx
5007c3:	f6 42 6c 01          	testb  $0x1,0x6c(%edx)
5007c7:	0f 84 8c 00 00 00    	je     0x500859
5007cd:	8b 55 dc             	mov    -0x24(%ebp),%edx
5007d0:	8b 5d d8             	mov    -0x28(%ebp),%ebx
5007d3:	0f b6 12             	movzbl (%edx),%edx
5007d6:	0f b6 1b             	movzbl (%ebx),%ebx
5007d9:	89 5d ec             	mov    %ebx,-0x14(%ebp)
5007dc:	8b 5d d0             	mov    -0x30(%ebp),%ebx
5007df:	8b 75 ec             	mov    -0x14(%ebp),%esi
5007e2:	8b 1c b3             	mov    (%ebx,%esi,4),%ebx
5007e5:	89 5d f4             	mov    %ebx,-0xc(%ebp)
5007e8:	8b 5d c4             	mov    -0x3c(%ebp),%ebx
5007eb:	8b 7d ec             	mov    -0x14(%ebp),%edi
5007ee:	8b 34 93             	mov    (%ebx,%edx,4),%esi
5007f1:	8b 5d c8             	mov    -0x38(%ebp),%ebx
5007f4:	03 34 bb             	add    (%ebx,%edi,4),%esi
5007f7:	8b 5d cc             	mov    -0x34(%ebp),%ebx
5007fa:	c1 fe 10             	sar    $0x10,%esi
5007fd:	8b 14 93             	mov    (%ebx,%edx,4),%edx
500800:	89 55 f0             	mov    %edx,-0x10(%ebp)
500803:	8b 55 e4             	mov    -0x1c(%ebp),%edx
500806:	8b 5d f4             	mov    -0xc(%ebp),%ebx
500809:	0f b6 12             	movzbl (%edx),%edx
50080c:	8d 3c 11             	lea    (%ecx,%edx,1),%edi
50080f:	8a 1c 1f             	mov    (%edi,%ebx,1),%bl
500812:	88 58 02             	mov    %bl,0x2(%eax)
500815:	8d 1c 11             	lea    (%ecx,%edx,1),%ebx
500818:	8d 14 11             	lea    (%ecx,%edx,1),%edx
50081b:	8a 1c 33             	mov    (%ebx,%esi,1),%bl
50081e:	88 58 01             	mov    %bl,0x1(%eax)
500821:	8b 5d f0             	mov    -0x10(%ebp),%ebx
500824:	8a 14 1a             	mov    (%edx,%ebx,1),%dl
500827:	88 10                	mov    %dl,(%eax)
500829:	33 d2                	xor    %edx,%edx
50082b:	8b 45 e0             	mov    -0x20(%ebp),%eax
50082e:	8a 10                	mov    (%eax),%dl
500830:	8b 45 f4             	mov    -0xc(%ebp),%eax
500833:	8d 1c 11             	lea    (%ecx,%edx,1),%ebx
500836:	8a 04 03             	mov    (%ebx,%eax,1),%al
500839:	8b 5d e8             	mov    -0x18(%ebp),%ebx
50083c:	88 43 02             	mov    %al,0x2(%ebx)
50083f:	8d 04 11             	lea    (%ecx,%edx,1),%eax
500842:	8b 5d e8             	mov    -0x18(%ebp),%ebx
500845:	8d 14 11             	lea    (%ecx,%edx,1),%edx
500848:	8a 04 30             	mov    (%eax,%esi,1),%al
50084b:	88 43 01             	mov    %al,0x1(%ebx)
50084e:	8b 45 f0             	mov    -0x10(%ebp),%eax
500851:	8a 0c 02             	mov    (%edx,%eax,1),%cl
500854:	8b 45 e8             	mov    -0x18(%ebp),%eax
500857:	88 08                	mov    %cl,(%eax)
500859:	5f                   	pop    %edi
50085a:	5e                   	pop    %esi
50085b:	5b                   	pop    %ebx
50085c:	8b e5                	mov    %ebp,%esp
50085e:	5d                   	pop    %ebp
50085f:	c2 04 00             	ret    $0x4
500862:	90                   	nop
500863:	90                   	nop
500864:	53                   	push   %ebx
500865:	56                   	push   %esi
500866:	8b f0                	mov    %eax,%esi
500868:	57                   	push   %edi
500869:	8b c6                	mov    %esi,%eax
50086b:	b9 30 00 00 00       	mov    $0x30,%ecx
500870:	ba 01 00 00 00       	mov    $0x1,%edx
500875:	8b 58 04             	mov    0x4(%eax),%ebx
500878:	ff 13                	call   *(%ebx)
50087a:	8b d8                	mov    %eax,%ebx
50087c:	33 c0                	xor    %eax,%eax
50087e:	89 9e bc 01 00 00    	mov    %ebx,0x1bc(%esi)
500884:	c7 03 b0 03 50 00    	movl   $0x5003b0,(%ebx)
50088a:	89 43 08             	mov    %eax,0x8(%ebx)
50088d:	8b 56 6c             	mov    0x6c(%esi),%edx
500890:	0f af 56 74          	imul   0x74(%esi),%edx
500894:	89 53 28             	mov    %edx,0x28(%ebx)
500897:	83 be 30 01 00 00 02 	cmpl   $0x2,0x130(%esi)
50089e:	75 23                	jne    0x5008c3
5008a0:	c7 43 04 c4 03 50 00 	movl   $0x5003c4,0x4(%ebx)
5008a7:	8b c6                	mov    %esi,%eax
5008a9:	ba 01 00 00 00       	mov    $0x1,%edx
5008ae:	c7 43 0c 2c 06 50 00 	movl   $0x50062c,0xc(%ebx)
5008b5:	8b 78 04             	mov    0x4(%eax),%edi
5008b8:	8b 4b 28             	mov    0x28(%ebx),%ecx
5008bb:	ff 57 04             	call   *0x4(%edi)
5008be:	89 43 20             	mov    %eax,0x20(%ebx)
5008c1:	eb 13                	jmp    0x5008d6
5008c3:	c7 43 04 7c 04 50 00 	movl   $0x50047c,0x4(%ebx)
5008ca:	c7 43 0c b4 04 50 00 	movl   $0x5004b4,0xc(%ebx)
5008d1:	33 c0                	xor    %eax,%eax
5008d3:	89 43 20             	mov    %eax,0x20(%ebx)
5008d6:	8b c6                	mov    %esi,%eax
5008d8:	e8 1b fa ff ff       	call   0x5002f8
5008dd:	5f                   	pop    %edi
5008de:	5e                   	pop    %esi
5008df:	5b                   	pop    %ebx
5008e0:	c3                   	ret
5008e1:	8d 40 00             	lea    0x0(%eax),%eax
5008e4:	53                   	push   %ebx
5008e5:	56                   	push   %esi
5008e6:	8b f0                	mov    %eax,%esi
5008e8:	57                   	push   %edi
5008e9:	8b c6                	mov    %esi,%eax
5008eb:	b9 00 04 00 00       	mov    $0x400,%ecx
5008f0:	8b 9e c0 01 00 00    	mov    0x1c0(%esi),%ebx
5008f6:	ba 01 00 00 00       	mov    $0x1,%edx
5008fb:	8b 78 04             	mov    0x4(%eax),%edi
5008fe:	ff 17                	call   *(%edi)
500900:	89 43 08             	mov    %eax,0x8(%ebx)
500903:	8b c6                	mov    %esi,%eax
500905:	b9 00 04 00 00       	mov    $0x400,%ecx
50090a:	ba 01 00 00 00       	mov    $0x1,%edx
50090f:	8b 78 04             	mov    0x4(%eax),%edi
500912:	ff 17                	call   *(%edi)
500914:	89 43 0c             	mov    %eax,0xc(%ebx)
500917:	8b c6                	mov    %esi,%eax
500919:	b9 00 04 00 00       	mov    $0x400,%ecx
50091e:	ba 01 00 00 00       	mov    $0x1,%edx
500923:	8b 78 04             	mov    0x4(%eax),%edi
500926:	ff 17                	call   *(%edi)
500928:	89 43 10             	mov    %eax,0x10(%ebx)
50092b:	8b c6                	mov    %esi,%eax
50092d:	b9 00 04 00 00       	mov    $0x400,%ecx
500932:	ba 01 00 00 00       	mov    $0x1,%edx
500937:	8b 70 04             	mov    0x4(%eax),%esi
50093a:	ff 16                	call   *(%esi)
50093c:	89 43 14             	mov    %eax,0x14(%ebx)
50093f:	33 c0                	xor    %eax,%eax
500941:	ba 80 ff ff ff       	mov    $0xffffff80,%edx
500946:	69 ca e9 66 01 00    	imul   $0x166e9,%edx,%ecx
50094c:	81 c1 00 80 00 00    	add    $0x8000,%ecx
500952:	8b 73 08             	mov    0x8(%ebx),%esi
500955:	c1 f9 10             	sar    $0x10,%ecx
500958:	89 0c 86             	mov    %ecx,(%esi,%eax,4)
50095b:	69 ca a2 c5 01 00    	imul   $0x1c5a2,%edx,%ecx
500961:	81 c1 00 80 00 00    	add    $0x8000,%ecx
500967:	8b 73 0c             	mov    0xc(%ebx),%esi
50096a:	c1 f9 10             	sar    $0x10,%ecx
50096d:	89 0c 86             	mov    %ecx,(%esi,%eax,4)
500970:	69 ca 2e 49 ff ff    	imul   $0xffff492e,%edx,%ecx
500976:	8b 73 10             	mov    0x10(%ebx),%esi
500979:	89 0c 86             	mov    %ecx,(%esi,%eax,4)
50097c:	69 ca e6 a7 ff ff    	imul   $0xffffa7e6,%edx,%ecx
500982:	8b 73 14             	mov    0x14(%ebx),%esi
500985:	81 c1 00 80 00 00    	add    $0x8000,%ecx
50098b:	42                   	inc    %edx
50098c:	89 0c 86             	mov    %ecx,(%esi,%eax,4)
50098f:	40                   	inc    %eax
500990:	3d ff 00 00 00       	cmp    $0xff,%eax
500995:	7e af                	jle    0x500946
500997:	5f                   	pop    %edi
500998:	5e                   	pop    %esi
500999:	5b                   	pop    %ebx
50099a:	c3                   	ret
50099b:	90                   	nop
50099c:	55                   	push   %ebp
50099d:	8b ec                	mov    %esp,%ebp
50099f:	83 c4 cc             	add    $0xffffffcc,%esp
5009a2:	53                   	push   %ebx
5009a3:	56                   	push   %esi
5009a4:	57                   	push   %edi
5009a5:	89 4d f8             	mov    %ecx,-0x8(%ebp)
5009a8:	89 55 fc             	mov    %edx,-0x4(%ebp)
5009ab:	8b 90 c0 01 00 00    	mov    0x1c0(%eax),%edx
5009b1:	8b 48 6c             	mov    0x6c(%eax),%ecx
5009b4:	89 4d e8             	mov    %ecx,-0x18(%ebp)
5009b7:	8b 88 3c 01 00 00    	mov    0x13c(%eax),%ecx
5009bd:	8b 42 08             	mov    0x8(%edx),%eax
5009c0:	89 45 e4             	mov    %eax,-0x1c(%ebp)
5009c3:	8b 42 0c             	mov    0xc(%edx),%eax
5009c6:	89 45 e0             	mov    %eax,-0x20(%ebp)
5009c9:	8b 42 10             	mov    0x10(%edx),%eax
5009cc:	89 45 dc             	mov    %eax,-0x24(%ebp)
5009cf:	8b 52 14             	mov    0x14(%edx),%edx
5009d2:	89 55 d8             	mov    %edx,-0x28(%ebp)
5009d5:	e9 b5 00 00 00       	jmp    0x500a8f
5009da:	8b 45 fc             	mov    -0x4(%ebp),%eax
5009dd:	8b 5d f8             	mov    -0x8(%ebp),%ebx
5009e0:	8b 75 f8             	mov    -0x8(%ebp),%esi
5009e3:	33 ff                	xor    %edi,%edi
5009e5:	8b 10                	mov    (%eax),%edx
5009e7:	8b 45 f8             	mov    -0x8(%ebp),%eax
5009ea:	8b 14 82             	mov    (%edx,%eax,4),%edx
5009ed:	8b 45 fc             	mov    -0x4(%ebp),%eax
5009f0:	8b 40 04             	mov    0x4(%eax),%eax
5009f3:	8b 1c 98             	mov    (%eax,%ebx,4),%ebx
5009f6:	8b 45 fc             	mov    -0x4(%ebp),%eax
5009f9:	8b 40 08             	mov    0x8(%eax),%eax
5009fc:	8b 34 b0             	mov    (%eax,%esi,4),%esi
5009ff:	ff 45 f8             	incl   -0x8(%ebp)
500a02:	8b 45 0c             	mov    0xc(%ebp),%eax
500a05:	8b 00                	mov    (%eax),%eax
500a07:	83 45 0c 04          	addl   $0x4,0xc(%ebp)
500a0b:	89 7d ec             	mov    %edi,-0x14(%ebp)
500a0e:	89 75 cc             	mov    %esi,-0x34(%ebp)
500a11:	89 5d d0             	mov    %ebx,-0x30(%ebp)
500a14:	89 55 d4             	mov    %edx,-0x2c(%ebp)
500a17:	8b 55 ec             	mov    -0x14(%ebp),%edx
500a1a:	3b 55 e8             	cmp    -0x18(%ebp),%edx
500a1d:	73 70                	jae    0x500a8f
500a1f:	8b 55 d4             	mov    -0x2c(%ebp),%edx
500a22:	8b 5d d0             	mov    -0x30(%ebp),%ebx
500a25:	0f b6 12             	movzbl (%edx),%edx
500a28:	0f b6 1b             	movzbl (%ebx),%ebx
500a2b:	89 5d f4             	mov    %ebx,-0xc(%ebp)
500a2e:	8b 5d cc             	mov    -0x34(%ebp),%ebx
500a31:	0f b6 1b             	movzbl (%ebx),%ebx
500a34:	89 5d f0             	mov    %ebx,-0x10(%ebp)
500a37:	8b 5d e4             	mov    -0x1c(%ebp),%ebx
500a3a:	8b 75 f0             	mov    -0x10(%ebp),%esi
500a3d:	8b 1c b3             	mov    (%ebx,%esi,4),%ebx
500a40:	8d 34 11             	lea    (%ecx,%edx,1),%esi
500a43:	8a 1c 1e             	mov    (%esi,%ebx,1),%bl
500a46:	88 58 02             	mov    %bl,0x2(%eax)
500a49:	8b 5d d8             	mov    -0x28(%ebp),%ebx
500a4c:	8b 75 f4             	mov    -0xc(%ebp),%esi
500a4f:	8b 7d f0             	mov    -0x10(%ebp),%edi
500a52:	8b 1c b3             	mov    (%ebx,%esi,4),%ebx
500a55:	8b 75 dc             	mov    -0x24(%ebp),%esi
500a58:	03 1c be             	add    (%esi,%edi,4),%ebx
500a5b:	8d 34 11             	lea    (%ecx,%edx,1),%esi
500a5e:	c1 fb 10             	sar    $0x10,%ebx
500a61:	8d 14 11             	lea    (%ecx,%edx,1),%edx
500a64:	8a 1c 1e             	mov    (%esi,%ebx,1),%bl
500a67:	88 58 01             	mov    %bl,0x1(%eax)
500a6a:	8b 5d e0             	mov    -0x20(%ebp),%ebx
500a6d:	8b 75 f4             	mov    -0xc(%ebp),%esi
500a70:	8b 1c b3             	mov    (%ebx,%esi,4),%ebx
500a73:	8a 14 1a             	mov    (%edx,%ebx,1),%dl
500a76:	88 10                	mov    %dl,(%eax)
500a78:	83 c0 03             	add    $0x3,%eax
500a7b:	ff 45 ec             	incl   -0x14(%ebp)
500a7e:	ff 45 cc             	incl   -0x34(%ebp)
500a81:	ff 45 d0             	incl   -0x30(%ebp)
500a84:	ff 45 d4             	incl   -0x2c(%ebp)
500a87:	8b 55 ec             	mov    -0x14(%ebp),%edx
500a8a:	3b 55 e8             	cmp    -0x18(%ebp),%edx
500a8d:	72 90                	jb     0x500a1f
500a8f:	ff 4d 08             	decl   0x8(%ebp)
500a92:	0f 89 42 ff ff ff    	jns    0x5009da
500a98:	5f                   	pop    %edi
500a99:	5e                   	pop    %esi
500a9a:	5b                   	pop    %ebx
500a9b:	8b e5                	mov    %ebp,%esp
500a9d:	5d                   	pop    %ebp
500a9e:	c2 08 00             	ret    $0x8
500aa1:	90                   	nop
500aa2:	90                   	nop
500aa3:	90                   	nop
500aa4:	55                   	push   %ebp
500aa5:	8b ec                	mov    %esp,%ebp
500aa7:	83 c4 f0             	add    $0xfffffff0,%esp
500aaa:	53                   	push   %ebx
500aab:	56                   	push   %esi
500aac:	57                   	push   %edi
500aad:	8b 58 20             	mov    0x20(%eax),%ebx
500ab0:	89 5d fc             	mov    %ebx,-0x4(%ebp)
500ab3:	8b 40 6c             	mov    0x6c(%eax),%eax
500ab6:	89 45 f8             	mov    %eax,-0x8(%ebp)
500ab9:	eb 4a                	jmp    0x500b05
500abb:	33 c0                	xor    %eax,%eax
500abd:	89 45 f4             	mov    %eax,-0xc(%ebp)
500ac0:	8b c2                	mov    %edx,%eax
500ac2:	89 45 f0             	mov    %eax,-0x10(%ebp)
500ac5:	8b 45 f4             	mov    -0xc(%ebp),%eax
500ac8:	3b 45 fc             	cmp    -0x4(%ebp),%eax
500acb:	7d 33                	jge    0x500b00
500acd:	8b 45 f0             	mov    -0x10(%ebp),%eax
500ad0:	8b 5d 0c             	mov    0xc(%ebp),%ebx
500ad3:	8b 7d f8             	mov    -0x8(%ebp),%edi
500ad6:	8b 33                	mov    (%ebx),%esi
500ad8:	8b 00                	mov    (%eax),%eax
500ada:	03 75 f4             	add    -0xc(%ebp),%esi
500add:	85 ff                	test   %edi,%edi
500adf:	8b 04 88             	mov    (%eax,%ecx,4),%eax
500ae2:	76 0d                	jbe    0x500af1
500ae4:	8a 18                	mov    (%eax),%bl
500ae6:	88 1e                	mov    %bl,(%esi)
500ae8:	40                   	inc    %eax
500ae9:	03 75 fc             	add    -0x4(%ebp),%esi
500aec:	4f                   	dec    %edi
500aed:	85 ff                	test   %edi,%edi
500aef:	77 f3                	ja     0x500ae4
500af1:	ff 45 f4             	incl   -0xc(%ebp)
500af4:	83 45 f0 04          	addl   $0x4,-0x10(%ebp)
500af8:	8b 45 f4             	mov    -0xc(%ebp),%eax
500afb:	3b 45 fc             	cmp    -0x4(%ebp),%eax
500afe:	7c cd                	jl     0x500acd
500b00:	41                   	inc    %ecx
500b01:	83 45 0c 04          	addl   $0x4,0xc(%ebp)
500b05:	ff 4d 08             	decl   0x8(%ebp)
500b08:	79 b1                	jns    0x500abb