475682:	78 4b                	js     0x4756cf
475684:	3b c6                	cmp    %esi,%eax
475686:	77 2c                	ja     0x4756b4
475688:	eb 45                	jmp    0x4756cf
47568a:	8b 8d 8c fb ff ff    	mov    -0x474(%ebp),%ecx
475690:	0b cb                	or     %ebx,%ecx
475692:	74 1c                	je     0x4756b0
475694:	85 f6                	test   %esi,%esi
475696:	74 37                	je     0x4756cf
475698:	85 c0                	test   %eax,%eax
47569a:	79 04                	jns    0x4756a0
47569c:	88 1f                	mov    %bl,(%edi)
47569e:	eb 2f                	jmp    0x4756cf
4756a0:	8b 85 98 fb ff ff    	mov    -0x468(%ebp),%eax
4756a6:	3b c6                	cmp    %esi,%eax
4756a8:	75 22                	jne    0x4756cc
4756aa:	88 5c 3e ff          	mov    %bl,-0x1(%esi,%edi,1)
4756ae:	eb 1f                	jmp    0x4756cf
4756b0:	85 f6                	test   %esi,%esi
4756b2:	75 05                	jne    0x4756b9
4756b4:	83 ce ff             	or     $0xffffffff,%esi
4756b7:	eb 1c                	jmp    0x4756d5
4756b9:	8b 85 98 fb ff ff    	mov    -0x468(%ebp),%eax
4756bf:	3b c6                	cmp    %esi,%eax
4756c1:	75 09                	jne    0x4756cc
4756c3:	6a fe                	push   $0xfffffffe
4756c5:	88 5c 3e ff          	mov    %bl,-0x1(%esi,%edi,1)
4756c9:	5e                   	pop    %esi
4756ca:	eb 09                	jmp    0x4756d5
4756cc:	88 1c 07             	mov    %bl,(%edi,%eax,1)
4756cf:	8b b5 a0 fb ff ff    	mov    -0x460(%ebp),%esi
4756d5:	8d 8d e0 fb ff ff    	lea    -0x420(%ebp),%ecx
4756db:	e8 9c 1c 00 00       	call   0x47737c
4756e0:	8b c6                	mov    %esi,%eax
4756e2:	5f                   	pop    %edi
4756e3:	8b 4d fc             	mov    -0x4(%ebp),%ecx
4756e6:	5e                   	pop    %esi
4756e7:	33 cd                	xor    %ebp,%ecx
4756e9:	5b                   	pop    %ebx
4756ea:	e8 db 42 ff ff       	call   0x4699ca
4756ef:	c9                   	leave
4756f0:	c3                   	ret
4756f1:	8b ff                	mov    %edi,%edi
4756f3:	55                   	push   %ebp
4756f4:	8b ec                	mov    %esp,%ebp
4756f6:	83 7d 18 00          	cmpl   $0x0,0x18(%ebp)
4756fa:	57                   	push   %edi
4756fb:	75 23                	jne    0x475720
4756fd:	8b 45 1c             	mov    0x1c(%ebp),%eax
475700:	50                   	push   %eax
475701:	c6 40 1c 01          	movb   $0x1,0x1c(%eax)
475705:	c7 40 18 16 00 00 00 	movl   $0x16,0x18(%eax)
47570c:	33 c0                	xor    %eax,%eax
47570e:	50                   	push   %eax
47570f:	50                   	push   %eax
475710:	50                   	push   %eax
475711:	50                   	push   %eax
475712:	50                   	push   %eax
475713:	e8 8c 3e 00 00       	call   0x4795a4
475718:	83 c4 18             	add    $0x18,%esp
47571b:	83 c8 ff             	or     $0xffffffff,%eax
47571e:	eb 6d                	jmp    0x47578d
475720:	56                   	push   %esi
475721:	8b 75 10             	mov    0x10(%ebp),%esi
475724:	85 f6                	test   %esi,%esi
475726:	74 43                	je     0x47576b
475728:	83 7d 14 00          	cmpl   $0x0,0x14(%ebp)
47572c:	76 3d                	jbe    0x47576b
47572e:	ff 75 20             	push   0x20(%ebp)
475731:	8b 7d 1c             	mov    0x1c(%ebp),%edi
475734:	57                   	push   %edi
475735:	ff 75 18             	push   0x18(%ebp)
475738:	ff 75 14             	push   0x14(%ebp)
47573b:	56                   	push   %esi
47573c:	ff 75 0c             	push   0xc(%ebp)
47573f:	ff 75 08             	push   0x8(%ebp)
475742:	e8 3f fb ff ff       	call   0x475286
475747:	8b c8                	mov    %eax,%ecx
475749:	83 c4 1c             	add    $0x1c,%esp
47574c:	33 c0                	xor    %eax,%eax
47574e:	85 c9                	test   %ecx,%ecx
475750:	79 02                	jns    0x475754
475752:	88 06                	mov    %al,(%esi)
475754:	83 f9 fe             	cmp    $0xfffffffe,%ecx
475757:	75 0e                	jne    0x475767
475759:	c6 47 1c 01          	movb   $0x1,0x1c(%edi)
47575d:	c7 47 18 22 00 00 00 	movl   $0x22,0x18(%edi)
475764:	57                   	push   %edi
475765:	eb 15                	jmp    0x47577c
475767:	8b c1                	mov    %ecx,%eax
475769:	eb 21                	jmp    0x47578c
47576b:	8b 45 1c             	mov    0x1c(%ebp),%eax
47576e:	50                   	push   %eax
47576f:	c6 40 1c 01          	movb   $0x1,0x1c(%eax)
475773:	c7 40 18 16 00 00 00 	movl   $0x16,0x18(%eax)
47577a:	33 c0                	xor    %eax,%eax
47577c:	50                   	push   %eax
47577d:	50                   	push   %eax
47577e:	50                   	push   %eax
47577f:	50                   	push   %eax
475780:	50                   	push   %eax
475781:	e8 1e 3e 00 00       	call   0x4795a4
475786:	83 c4 18             	add    $0x18,%esp
475789:	83 c8 ff             	or     $0xffffffff,%eax
47578c:	5e                   	pop    %esi
47578d:	5f                   	pop    %edi
47578e:	5d                   	pop    %ebp
47578f:	c3                   	ret
475790:	8b ff                	mov    %edi,%edi
475792:	55                   	push   %ebp
475793:	8b ec                	mov    %esp,%ebp
475795:	83 7d 18 00          	cmpl   $0x0,0x18(%ebp)
475799:	57                   	push   %edi
47579a:	75 23                	jne    0x4757bf
47579c:	8b 45 1c             	mov    0x1c(%ebp),%eax
47579f:	50                   	push   %eax
4757a0:	c6 40 1c 01          	movb   $0x1,0x1c(%eax)
4757a4:	c7 40 18 16 00 00 00 	movl   $0x16,0x18(%eax)
4757ab:	33 c0                	xor    %eax,%eax
4757ad:	50                   	push   %eax
4757ae:	50                   	push   %eax
4757af:	50                   	push   %eax
4757b0:	50                   	push   %eax
4757b1:	50                   	push   %eax
4757b2:	e8 ed 3d 00 00       	call   0x4795a4
4757b7:	83 c4 18             	add    $0x18,%esp
4757ba:	83 c8 ff             	or     $0xffffffff,%eax
4757bd:	eb 68                	jmp    0x475827
4757bf:	56                   	push   %esi
4757c0:	8b 75 10             	mov    0x10(%ebp),%esi
4757c3:	85 f6                	test   %esi,%esi
4757c5:	74 3e                	je     0x475805
4757c7:	83 7d 14 00          	cmpl   $0x0,0x14(%ebp)
4757cb:	76 38                	jbe    0x475805
4757cd:	ff 75 20             	push   0x20(%ebp)
4757d0:	8b 7d 1c             	mov    0x1c(%ebp),%edi
4757d3:	57                   	push   %edi
4757d4:	ff 75 18             	push   0x18(%ebp)
4757d7:	ff 75 14             	push   0x14(%ebp)
4757da:	56                   	push   %esi
4757db:	ff 75 0c             	push   0xc(%ebp)
4757de:	ff 75 08             	push   0x8(%ebp)
4757e1:	e8 14 fc ff ff       	call   0x4753fa
4757e6:	83 c4 1c             	add    $0x1c,%esp
4757e9:	85 c0                	test   %eax,%eax
4757eb:	79 05                	jns    0x4757f2
4757ed:	33 c9                	xor    %ecx,%ecx
4757ef:	66 89 0e             	mov    %cx,(%esi)
4757f2:	83 f8 fe             	cmp    $0xfffffffe,%eax
4757f5:	75 2f                	jne    0x475826
4757f7:	c6 47 1c 01          	movb   $0x1,0x1c(%edi)
4757fb:	c7 47 18 22 00 00 00 	movl   $0x22,0x18(%edi)
475802:	57                   	push   %edi
475803:	eb 0f                	jmp    0x475814
475805:	8b 45 1c             	mov    0x1c(%ebp),%eax
475808:	50                   	push   %eax
475809:	c6 40 1c 01          	movb   $0x1,0x1c(%eax)
47580d:	c7 40 18 16 00 00 00 	movl   $0x16,0x18(%eax)
475814:	33 c0                	xor    %eax,%eax
475816:	50                   	push   %eax
475817:	50                   	push   %eax
475818:	50                   	push   %eax
475819:	50                   	push   %eax
47581a:	50                   	push   %eax
47581b:	e8 84 3d 00 00       	call   0x4795a4
475820:	83 c4 18             	add    $0x18,%esp
475823:	83 c8 ff             	or     $0xffffffff,%eax
475826:	5e                   	pop    %esi
475827:	5f                   	pop    %edi
475828:	5d                   	pop    %ebp
475829:	c3                   	ret
47582a:	83 b9 04 04 00 00 00 	cmpl   $0x0,0x404(%ecx)
475831:	75 06                	jne    0x475839
475833:	b8 00 02 00 00       	mov    $0x200,%eax
475838:	c3                   	ret
475839:	8b 81 00 04 00 00    	mov    0x400(%ecx),%eax
47583f:	d1 e8                	shr    $1,%eax
475841:	c3                   	ret
475842:	83 b9 04 04 00 00 00 	cmpl   $0x0,0x404(%ecx)
475849:	75 06                	jne    0x475851
47584b:	b8 00 01 00 00       	mov    $0x100,%eax
475850:	c3                   	ret
475851:	8b 81 00 04 00 00    	mov    0x400(%ecx),%eax
475857:	c1 e8 02             	shr    $0x2,%eax
47585a:	c3                   	ret
47585b:	8b ff                	mov    %edi,%edi
47585d:	55                   	push   %ebp
47585e:	8b ec                	mov    %esp,%ebp
475860:	51                   	push   %ecx
475861:	56                   	push   %esi
475862:	8b 75 08             	mov    0x8(%ebp),%esi
475865:	57                   	push   %edi
475866:	8b f9                	mov    %ecx,%edi
475868:	81 fe ff ff ff 7f    	cmp    $0x7fffffff,%esi
47586e:	76 12                	jbe    0x475882
475870:	8b 45 0c             	mov    0xc(%ebp),%eax
475873:	c6 40 1c 01          	movb   $0x1,0x1c(%eax)
475877:	c7 40 18 0c 00 00 00 	movl   $0xc,0x18(%eax)
47587e:	32 c0                	xor    %al,%al
475880:	eb 54                	jmp    0x4758d6
475882:	53                   	push   %ebx
475883:	8d 9f 04 04 00 00    	lea    0x404(%edi),%ebx
475889:	03 f6                	add    %esi,%esi
47588b:	83 3b 00             	cmpl   $0x0,(%ebx)
47588e:	75 08                	jne    0x475898
475890:	81 fe 00 04 00 00    	cmp    $0x400,%esi
475896:	76 3b                	jbe    0x4758d3
475898:	3b b7 00 04 00 00    	cmp    0x400(%edi),%esi
47589e:	76 33                	jbe    0x4758d3
4758a0:	56                   	push   %esi
4758a1:	e8 8c ff 00 00       	call   0x485832
4758a6:	89 45 fc             	mov    %eax,-0x4(%ebp)
4758a9:	59                   	pop    %ecx
4758aa:	85 c0                	test   %eax,%eax
4758ac:	75 0b                	jne    0x4758b9
4758ae:	50                   	push   %eax
4758af:	e8 44 ff 00 00       	call   0x4857f8
4758b4:	59                   	pop    %ecx
4758b5:	32 c0                	xor    %al,%al
4758b7:	eb 1c                	jmp    0x4758d5
4758b9:	8d 45 fc             	lea    -0x4(%ebp),%eax
4758bc:	8b cb                	mov    %ebx,%ecx
4758be:	50                   	push   %eax
4758bf:	e8 d2 1a 00 00       	call   0x477396
4758c4:	ff 75 fc             	push   -0x4(%ebp)
4758c7:	89 b7 00 04 00 00    	mov    %esi,0x400(%edi)
4758cd:	e8 26 ff 00 00       	call   0x4857f8
4758d2:	59                   	pop    %ecx
4758d3:	b0 01                	mov    $0x1,%al
4758d5:	5b                   	pop    %ebx
4758d6:	5f                   	pop    %edi
4758d7:	5e                   	pop    %esi
4758d8:	c9                   	leave
4758d9:	c2 08 00             	ret    $0x8
4758dc:	8b ff                	mov    %edi,%edi
4758de:	55                   	push   %ebp
4758df:	8b ec                	mov    %esp,%ebp
4758e1:	51                   	push   %ecx
4758e2:	56                   	push   %esi
4758e3:	8b 75 08             	mov    0x8(%ebp),%esi
4758e6:	57                   	push   %edi
4758e7:	8b f9                	mov    %ecx,%edi
4758e9:	81 fe ff ff ff 3f    	cmp    $0x3fffffff,%esi
4758ef:	76 12                	jbe    0x475903
4758f1:	8b 45 0c             	mov    0xc(%ebp),%eax
4758f4:	c6 40 1c 01          	movb   $0x1,0x1c(%eax)
4758f8:	c7 40 18 0c 00 00 00 	movl   $0xc,0x18(%eax)
4758ff:	32 c0                	xor    %al,%al
475901:	eb 55                	jmp    0x475958
475903:	53                   	push   %ebx
475904:	8d 9f 04 04 00 00    	lea    0x404(%edi),%ebx
47590a:	c1 e6 02             	shl    $0x2,%esi
47590d:	83 3b 00             	cmpl   $0x0,(%ebx)
475910:	75 08                	jne    0x47591a
475912:	81 fe 00 04 00 00    	cmp    $0x400,%esi
475918:	76 3b                	jbe    0x475955
47591a:	3b b7 00 04 00 00    	cmp    0x400(%edi),%esi
475920:	76 33                	jbe    0x475955
475922:	56                   	push   %esi
475923:	e8 0a ff 00 00       	call   0x485832
475928:	89 45 fc             	mov    %eax,-0x4(%ebp)
47592b:	59                   	pop    %ecx
47592c:	85 c0                	test   %eax,%eax
47592e:	75 0b                	jne    0x47593b
475930:	50                   	push   %eax
475931:	e8 c2 fe 00 00       	call   0x4857f8
475936:	59                   	pop    %ecx
475937:	32 c0                	xor    %al,%al
475939:	eb 1c                	jmp    0x475957
47593b:	8d 45 fc             	lea    -0x4(%ebp),%eax
47593e:	8b cb                	mov    %ebx,%ecx
475940:	50                   	push   %eax
475941:	e8 50 1a 00 00       	call   0x477396
475946:	ff 75 fc             	push   -0x4(%ebp)
475949:	89 b7 00 04 00 00    	mov    %esi,0x400(%edi)
47594f:	e8 a4 fe 00 00       	call   0x4857f8
475954:	59                   	pop    %ecx
475955:	b0 01                	mov    $0x1,%al
475957:	5b                   	pop    %ebx
475958:	5f                   	pop    %edi
475959:	5e                   	pop    %esi
47595a:	c9                   	leave
47595b:	c2 08 00             	ret    $0x8
47595e:	8b ff                	mov    %edi,%edi
475960:	55                   	push   %ebp
475961:	8b ec                	mov    %esp,%ebp
475963:	f6 45 08 04          	testb  $0x4,0x8(%ebp)
475967:	75 25                	jne    0x47598e
475969:	f6 45 08 01          	testb  $0x1,0x8(%ebp)
47596d:	74 0f                	je     0x47597e
47596f:	f6 45 08 02          	testb  $0x2,0x8(%ebp)
475973:	74 0d                	je     0x475982
475975:	81 7d 0c 00 00 00 80 	cmpl   $0x80000000,0xc(%ebp)
47597c:	77 10                	ja     0x47598e
47597e:	32 c0                	xor    %al,%al
475980:	5d                   	pop    %ebp
475981:	c3                   	ret
475982:	81 7d 0c ff ff ff 7f 	cmpl   $0x7fffffff,0xc(%ebp)
475989:	0f 97 c0             	seta   %al
47598c:	5d                   	pop    %ebp
47598d:	c3                   	ret
47598e:	b0 01                	mov    $0x1,%al
475990:	5d                   	pop    %ebp
475991:	c3                   	ret
475992:	8b ff                	mov    %edi,%edi
475994:	55                   	push   %ebp
475995:	8b ec                	mov    %esp,%ebp
475997:	8b 45 14             	mov    0x14(%ebp),%eax
47599a:	48                   	dec    %eax
47599b:	83 e8 01             	sub    $0x1,%eax
47599e:	74 1f                	je     0x4759bf
4759a0:	83 e8 01             	sub    $0x1,%eax
4759a3:	74 16                	je     0x4759bb
4759a5:	83 e8 09             	sub    $0x9,%eax
4759a8:	74 11                	je     0x4759bb
4759aa:	83 7d 14 0d          	cmpl   $0xd,0x14(%ebp)
4759ae:	74 0f                	je     0x4759bf
4759b0:	8a 45 10             	mov    0x10(%ebp),%al
4759b3:	3c 63                	cmp    $0x63,%al
4759b5:	74 08                	je     0x4759bf
4759b7:	3c 73                	cmp    $0x73,%al
4759b9:	74 04                	je     0x4759bf
4759bb:	b0 01                	mov    $0x1,%al
4759bd:	5d                   	pop    %ebp
4759be:	c3                   	ret
4759bf:	32 c0                	xor    %al,%al
4759c1:	5d                   	pop    %ebp
4759c2:	c3                   	ret
4759c3:	8b ff                	mov    %edi,%edi
4759c5:	55                   	push   %ebp
4759c6:	8b ec                	mov    %esp,%ebp
4759c8:	8b 45 14             	mov    0x14(%ebp),%eax
4759cb:	48                   	dec    %eax
4759cc:	83 e8 01             	sub    $0x1,%eax
4759cf:	74 3c                	je     0x475a0d
4759d1:	83 e8 01             	sub    $0x1,%eax
4759d4:	74 33                	je     0x475a09
4759d6:	83 e8 09             	sub    $0x9,%eax
4759d9:	74 2e                	je     0x475a09
4759db:	83 7d 14 0d          	cmpl   $0xd,0x14(%ebp)
4759df:	74 28                	je     0x475a09
4759e1:	8b 45 08             	mov    0x8(%ebp),%eax
4759e4:	83 e0 04             	and    $0x4,%eax
4759e7:	83 c8 00             	or     $0x0,%eax
4759ea:	6a 01                	push   $0x1
4759ec:	58                   	pop    %eax
4759ed:	74 04                	je     0x4759f3
4759ef:	8a c8                	mov    %al,%cl
4759f1:	eb 02                	jmp    0x4759f5
4759f3:	32 c9                	xor    %cl,%cl