46b649:	70 65                	jo     0x46b6b0
46b64b:	6e                   	outsb  %ds:(%esi),(%dx)
46b64c:	64 43                	fs inc %ebx
46b64e:	6c                   	insb   (%dx),%es:(%edi)
46b64f:	61                   	popa
46b650:	73 73                	jae    0x46b6c5
46b652:	4f                   	dec    %edi
46b653:	62 6a 65             	bound  %ebp,0x65(%edx)
46b656:	63 74 73 00          	arpl   %esi,0x0(%ebx,%esi,2)
46b65a:	00 00                	add    %al,(%eax)
46b65c:	55                   	push   %ebp
46b65d:	8b ec                	mov    %esp,%ebp
46b65f:	33 c9                	xor    %ecx,%ecx
46b661:	51                   	push   %ecx
46b662:	51                   	push   %ecx
46b663:	51                   	push   %ecx
46b664:	51                   	push   %ecx
46b665:	51                   	push   %ecx
46b666:	51                   	push   %ecx
46b667:	51                   	push   %ecx
46b668:	51                   	push   %ecx
46b669:	53                   	push   %ebx
46b66a:	56                   	push   %esi
46b66b:	8b f2                	mov    %edx,%esi
46b66d:	8b d8                	mov    %eax,%ebx
46b66f:	33 c0                	xor    %eax,%eax
46b671:	55                   	push   %ebp
46b672:	68 4c b7 46 00       	push   $0x46b74c
46b677:	64 ff 30             	push   %fs:(%eax)
46b67a:	64 89 20             	mov    %esp,%fs:(%eax)
46b67d:	33 c0                	xor    %eax,%eax
46b67f:	89 45 ec             	mov    %eax,-0x14(%ebp)
46b682:	8d 45 fc             	lea    -0x4(%ebp),%eax
46b685:	e8 ee aa f9 ff       	call   0x406178
46b68a:	50                   	push   %eax
46b68b:	6a 00                	push   $0x0
46b68d:	e8 ae c1 f9 ff       	call   0x407840
46b692:	85 c0                	test   %eax,%eax
46b694:	75 43                	jne    0x46b6d9
46b696:	8d 45 f8             	lea    -0x8(%ebp),%eax
46b699:	e8 b6 98 f9 ff       	call   0x404f54
46b69e:	50                   	push   %eax
46b69f:	8b 45 fc             	mov    -0x4(%ebp),%eax
46b6a2:	50                   	push   %eax
46b6a3:	8b 00                	mov    (%eax),%eax
46b6a5:	ff 50 10             	call   *0x10(%eax)
46b6a8:	8d 45 f4             	lea    -0xc(%ebp),%eax
46b6ab:	e8 a4 98 f9 ff       	call   0x404f54
46b6b0:	50                   	push   %eax
46b6b1:	8b 45 fc             	mov    -0x4(%ebp),%eax
46b6b4:	50                   	push   %eax
46b6b5:	8b 00                	mov    (%eax),%eax
46b6b7:	ff 50 14             	call   *0x14(%eax)
46b6ba:	8d 45 f0             	lea    -0x10(%ebp),%eax
46b6bd:	e8 92 98 f9 ff       	call   0x404f54
46b6c2:	50                   	push   %eax
46b6c3:	8b 45 fc             	mov    -0x4(%ebp),%eax
46b6c6:	50                   	push   %eax
46b6c7:	8b 00                	mov    (%eax),%eax
46b6c9:	ff 50 18             	call   *0x18(%eax)
46b6cc:	8d 45 ec             	lea    -0x14(%ebp),%eax
46b6cf:	50                   	push   %eax
46b6d0:	8b 45 fc             	mov    -0x4(%ebp),%eax
46b6d3:	50                   	push   %eax
46b6d4:	8b 00                	mov    (%eax),%eax
46b6d6:	ff 50 1c             	call   *0x1c(%eax)
46b6d9:	56                   	push   %esi
46b6da:	53                   	push   %ebx
46b6db:	8d 45 e8             	lea    -0x18(%ebp),%eax
46b6de:	8b 55 f8             	mov    -0x8(%ebp),%edx
46b6e1:	e8 ea 92 f9 ff       	call   0x4049d0
46b6e6:	8b 45 e8             	mov    -0x18(%ebp),%eax
46b6e9:	50                   	push   %eax
46b6ea:	8d 45 e4             	lea    -0x1c(%ebp),%eax
46b6ed:	8b 55 f0             	mov    -0x10(%ebp),%edx
46b6f0:	e8 db 92 f9 ff       	call   0x4049d0
46b6f5:	8b 45 e4             	mov    -0x1c(%ebp),%eax
46b6f8:	50                   	push   %eax
46b6f9:	8b 45 ec             	mov    -0x14(%ebp),%eax
46b6fc:	50                   	push   %eax
46b6fd:	8d 45 e0             	lea    -0x20(%ebp),%eax
46b700:	8b 55 f4             	mov    -0xc(%ebp),%edx
46b703:	e8 c8 92 f9 ff       	call   0x4049d0
46b708:	8b 4d e0             	mov    -0x20(%ebp),%ecx
46b70b:	b2 01                	mov    $0x1,%dl
46b70d:	a1 1c ae 46 00       	mov    0x46ae1c,%eax
46b712:	e8 e1 f8 ff ff       	call   0x46aff8
46b717:	e9 74 8a f9 ff       	jmp    0x404190
46b71c:	33 c0                	xor    %eax,%eax
46b71e:	5a                   	pop    %edx
46b71f:	59                   	pop    %ecx
46b720:	59                   	pop    %ecx
46b721:	64 89 10             	mov    %edx,%fs:(%eax)
46b724:	68 53 b7 46 00       	push   $0x46b753
46b729:	8d 45 e0             	lea    -0x20(%ebp),%eax
46b72c:	ba 03 00 00 00       	mov    $0x3,%edx
46b731:	e8 36 90 f9 ff       	call   0x40476c
46b736:	8d 45 f0             	lea    -0x10(%ebp),%eax
46b739:	ba 03 00 00 00       	mov    $0x3,%edx
46b73e:	e8 29 98 f9 ff       	call   0x404f6c
46b743:	8d 45 fc             	lea    -0x4(%ebp),%eax
46b746:	e8 2d aa f9 ff       	call   0x406178
46b74b:	c3                   	ret
46b74c:	e9 5f 89 f9 ff       	jmp    0x4040b0
46b751:	eb d6                	jmp    0x46b729
46b753:	5e                   	pop    %esi
46b754:	5b                   	pop    %ebx
46b755:	8b e5                	mov    %ebp,%esp
46b757:	5d                   	pop    %ebp
46b758:	c3                   	ret
46b759:	8d 40 00             	lea    0x0(%eax),%eax
46b75c:	55                   	push   %ebp
46b75d:	8b ec                	mov    %esp,%ebp
46b75f:	81 c4 b0 f9 ff ff    	add    $0xfffff9b0,%esp
46b765:	53                   	push   %ebx
46b766:	56                   	push   %esi
46b767:	57                   	push   %edi
46b768:	89 4d d8             	mov    %ecx,-0x28(%ebp)
46b76b:	8b f2                	mov    %edx,%esi
46b76d:	89 45 dc             	mov    %eax,-0x24(%ebp)
46b770:	8d 45 e0             	lea    -0x20(%ebp),%eax
46b773:	8b 15 e0 75 40 00    	mov    0x4075e0,%edx
46b779:	e8 66 9a f9 ff       	call   0x4051e4
46b77e:	33 c0                	xor    %eax,%eax
46b780:	55                   	push   %ebp
46b781:	68 87 ba 46 00       	push   $0x46ba87
46b786:	64 ff 30             	push   %fs:(%eax)
46b789:	64 89 20             	mov    %esp,%fs:(%eax)
46b78c:	33 c0                	xor    %eax,%eax
46b78e:	89 45 d0             	mov    %eax,-0x30(%ebp)
46b791:	33 c9                	xor    %ecx,%ecx
46b793:	55                   	push   %ebp
46b794:	68 64 ba 46 00       	push   $0x46ba64
46b799:	64 ff 31             	push   %fs:(%ecx)
46b79c:	64 89 21             	mov    %esp,%fs:(%ecx)
46b79f:	0f b6 7e 01          	movzbl 0x1(%esi),%edi
46b7a3:	83 ff 40             	cmp    $0x40,%edi
46b7a6:	7e 17                	jle    0x46b7bf
46b7a8:	8b 0d 30 75 4a 00    	mov    0x4a7530,%ecx
46b7ae:	b2 01                	mov    $0x1,%dl
46b7b0:	a1 1c ae 46 00       	mov    0x46ae1c,%eax
46b7b5:	e8 12 0d fa ff       	call   0x40c4cc
46b7ba:	e8 d1 89 f9 ff       	call   0x404190
46b7bf:	85 ff                	test   %edi,%edi
46b7c1:	0f 84 c1 01 00 00    	je     0x46b988
46b7c7:	8b 45 0c             	mov    0xc(%ebp),%eax
46b7ca:	89 45 cc             	mov    %eax,-0x34(%ebp)
46b7cd:	8b c7                	mov    %edi,%eax
46b7cf:	03 c0                	add    %eax,%eax
46b7d1:	8d 84 c5 b0 f9 ff ff 	lea    -0x650(%ebp,%eax,8),%eax
46b7d8:	89 45 c8             	mov    %eax,-0x38(%ebp)
46b7db:	33 db                	xor    %ebx,%ebx
46b7dd:	83 6d c8 10          	subl   $0x10,-0x38(%ebp)
46b7e1:	0f b6 44 1e 03       	movzbl 0x3(%esi,%ebx,1),%eax
46b7e6:	8b d0                	mov    %eax,%edx
46b7e8:	80 e2 7f             	and    $0x7f,%dl
46b7eb:	0f b6 d2             	movzbl %dl,%edx
46b7ee:	89 55 d4             	mov    %edx,-0x2c(%ebp)
46b7f1:	24 80                	and    $0x80,%al
46b7f3:	83 7d d4 0a          	cmpl   $0xa,-0x2c(%ebp)
46b7f7:	75 18                	jne    0x46b811
46b7f9:	8b 45 c8             	mov    -0x38(%ebp),%eax
46b7fc:	c7 00 0a 00 00 00    	movl   $0xa,(%eax)
46b802:	8b 45 c8             	mov    -0x38(%ebp),%eax
46b805:	c7 40 08 04 00 02 80 	movl   $0x80020004,0x8(%eax)
46b80c:	e9 6e 01 00 00       	jmp    0x46b97f
46b811:	83 7d d4 48          	cmpl   $0x48,-0x2c(%ebp)
46b815:	75 74                	jne    0x46b88b
46b817:	8b 55 d0             	mov    -0x30(%ebp),%edx
46b81a:	8d 94 d5 b0 fd ff ff 	lea    -0x250(%ebp,%edx,8),%edx
46b821:	89 55 c4             	mov    %edx,-0x3c(%ebp)
46b824:	84 c0                	test   %al,%al
46b826:	74 30                	je     0x46b858
46b828:	8b 45 cc             	mov    -0x34(%ebp),%eax
46b82b:	8b 00                	mov    (%eax),%eax
46b82d:	8b 00                	mov    (%eax),%eax
46b82f:	e8 40 9e f9 ff       	call   0x405674
46b834:	8b 55 c4             	mov    -0x3c(%ebp),%edx
46b837:	89 02                	mov    %eax,(%edx)
46b839:	8b 45 cc             	mov    -0x34(%ebp),%eax
46b83c:	8b 00                	mov    (%eax),%eax
46b83e:	8b 55 c4             	mov    -0x3c(%ebp),%edx
46b841:	89 42 04             	mov    %eax,0x4(%edx)
46b844:	8b 45 c8             	mov    -0x38(%ebp),%eax
46b847:	c7 00 08 40 00 00    	movl   $0x4008,(%eax)
46b84d:	8b 45 c4             	mov    -0x3c(%ebp),%eax
46b850:	8b 55 c8             	mov    -0x38(%ebp),%edx
46b853:	89 42 08             	mov    %eax,0x8(%edx)
46b856:	eb 2b                	jmp    0x46b883
46b858:	8b 45 cc             	mov    -0x34(%ebp),%eax
46b85b:	8b 00                	mov    (%eax),%eax
46b85d:	e8 12 9e f9 ff       	call   0x405674
46b862:	8b 55 c4             	mov    -0x3c(%ebp),%edx
46b865:	89 02                	mov    %eax,(%edx)
46b867:	8b 45 c4             	mov    -0x3c(%ebp),%eax
46b86a:	33 d2                	xor    %edx,%edx
46b86c:	89 50 04             	mov    %edx,0x4(%eax)
46b86f:	8b 45 c8             	mov    -0x38(%ebp),%eax
46b872:	c7 00 08 00 00 00    	movl   $0x8,(%eax)
46b878:	8b 45 c4             	mov    -0x3c(%ebp),%eax
46b87b:	8b 00                	mov    (%eax),%eax
46b87d:	8b 55 c8             	mov    -0x38(%ebp),%edx
46b880:	89 42 08             	mov    %eax,0x8(%edx)
46b883:	ff 45 d0             	incl   -0x30(%ebp)
46b886:	e9 f0 00 00 00       	jmp    0x46b97b
46b88b:	84 c0                	test   %al,%al
46b88d:	74 45                	je     0x46b8d4
46b88f:	83 7d d4 0c          	cmpl   $0xc,-0x2c(%ebp)
46b893:	75 22                	jne    0x46b8b7
46b895:	8b 45 cc             	mov    -0x34(%ebp),%eax
46b898:	8b 00                	mov    (%eax),%eax
46b89a:	66 81 38 00 01       	cmpw   $0x100,(%eax)
46b89f:	75 16                	jne    0x46b8b7
46b8a1:	8b 45 cc             	mov    -0x34(%ebp),%eax
46b8a4:	8b 00                	mov    (%eax),%eax
46b8a6:	8b d0                	mov    %eax,%edx
46b8a8:	8b 45 cc             	mov    -0x34(%ebp),%eax
46b8ab:	8b 00                	mov    (%eax),%eax
46b8ad:	b9 08 00 00 00       	mov    $0x8,%ecx
46b8b2:	e8 0d 4a fa ff       	call   0x4102c4
46b8b7:	8b 45 d4             	mov    -0x2c(%ebp),%eax
46b8ba:	0d 00 40 00 00       	or     $0x4000,%eax
46b8bf:	8b 55 c8             	mov    -0x38(%ebp),%edx
46b8c2:	89 02                	mov    %eax,(%edx)
46b8c4:	8b 45 cc             	mov    -0x34(%ebp),%eax
46b8c7:	8b 00                	mov    (%eax),%eax
46b8c9:	8b 55 c8             	mov    -0x38(%ebp),%edx
46b8cc:	89 42 08             	mov    %eax,0x8(%edx)
46b8cf:	e9 a7 00 00 00       	jmp    0x46b97b
46b8d4:	83 7d d4 0c          	cmpl   $0xc,-0x2c(%ebp)
46b8d8:	75 73                	jne    0x46b94d
46b8da:	8b 45 cc             	mov    -0x34(%ebp),%eax
46b8dd:	66 81 38 00 01       	cmpw   $0x100,(%eax)
46b8e2:	75 3e                	jne    0x46b922
46b8e4:	8b 45 d0             	mov    -0x30(%ebp),%eax
46b8e7:	8d 84 c5 b0 fd ff ff 	lea    -0x250(%ebp,%eax,8),%eax
46b8ee:	89 45 c0             	mov    %eax,-0x40(%ebp)
46b8f1:	8b 45 cc             	mov    -0x34(%ebp),%eax
46b8f4:	8b 40 08             	mov    0x8(%eax),%eax
46b8f7:	e8 78 9d f9 ff       	call   0x405674
46b8fc:	8b 55 c0             	mov    -0x40(%ebp),%edx
46b8ff:	89 02                	mov    %eax,(%edx)
46b901:	8b 45 c0             	mov    -0x40(%ebp),%eax
46b904:	33 d2                	xor    %edx,%edx
46b906:	89 50 04             	mov    %edx,0x4(%eax)
46b909:	8b 45 c8             	mov    -0x38(%ebp),%eax
46b90c:	c7 00 08 00 00 00    	movl   $0x8,(%eax)
46b912:	8b 45 c0             	mov    -0x40(%ebp),%eax
46b915:	8b 00                	mov    (%eax),%eax
46b917:	8b 55 c8             	mov    -0x38(%ebp),%edx
46b91a:	89 42 08             	mov    %eax,0x8(%edx)
46b91d:	ff 45 d0             	incl   -0x30(%ebp)
46b920:	eb 59                	jmp    0x46b97b
46b922:	8b 45 cc             	mov    -0x34(%ebp),%eax
46b925:	8b 10                	mov    (%eax),%edx
46b927:	8b 4d c8             	mov    -0x38(%ebp),%ecx
46b92a:	89 11                	mov    %edx,(%ecx)
46b92c:	8b 50 04             	mov    0x4(%eax),%edx
46b92f:	8b 4d c8             	mov    -0x38(%ebp),%ecx
46b932:	89 51 04             	mov    %edx,0x4(%ecx)
46b935:	8b 50 08             	mov    0x8(%eax),%edx
46b938:	8b 4d c8             	mov    -0x38(%ebp),%ecx
46b93b:	89 51 08             	mov    %edx,0x8(%ecx)
46b93e:	8b 40 0c             	mov    0xc(%eax),%eax
46b941:	8b 55 c8             	mov    -0x38(%ebp),%edx
46b944:	89 42 0c             	mov    %eax,0xc(%edx)
46b947:	83 45 cc 0c          	addl   $0xc,-0x34(%ebp)
46b94b:	eb 2e                	jmp    0x46b97b
46b94d:	8b 45 c8             	mov    -0x38(%ebp),%eax
46b950:	8b 55 d4             	mov    -0x2c(%ebp),%edx
46b953:	89 10                	mov    %edx,(%eax)
46b955:	8b 45 cc             	mov    -0x34(%ebp),%eax
46b958:	8b 00                	mov    (%eax),%eax
46b95a:	8b 55 c8             	mov    -0x38(%ebp),%edx
46b95d:	89 42 08             	mov    %eax,0x8(%edx)
46b960:	83 7d d4 05          	cmpl   $0x5,-0x2c(%ebp)
46b964:	7c 15                	jl     0x46b97b
46b966:	83 7d d4 07          	cmpl   $0x7,-0x2c(%ebp)
46b96a:	7f 0f                	jg     0x46b97b
46b96c:	83 45 cc 04          	addl   $0x4,-0x34(%ebp)
46b970:	8b 45 cc             	mov    -0x34(%ebp),%eax
46b973:	8b 00                	mov    (%eax),%eax
46b975:	8b 55 c8             	mov    -0x38(%ebp),%edx
46b978:	89 42 0c             	mov    %eax,0xc(%edx)
46b97b:	83 45 cc 04          	addl   $0x4,-0x34(%ebp)
46b97f:	43                   	inc    %ebx
46b980:	3b fb                	cmp    %ebx,%edi
46b982:	0f 85 55 fe ff ff    	jne    0x46b7dd
46b988:	8d 85 b0 f9 ff ff    	lea    -0x650(%ebp),%eax
46b98e:	89 45 b0             	mov    %eax,-0x50(%ebp)
46b991:	8b 45 d8             	mov    -0x28(%ebp),%eax
46b994:	83 c0 04             	add    $0x4,%eax
46b997:	89 45 b4             	mov    %eax,-0x4c(%ebp)
46b99a:	89 7d b8             	mov    %edi,-0x48(%ebp)
46b99d:	0f b6 46 02          	movzbl 0x2(%esi),%eax
46b9a1:	89 45 bc             	mov    %eax,-0x44(%ebp)
46b9a4:	8b 45 d8             	mov    -0x28(%ebp),%eax
46b9a7:	8b 10                	mov    (%eax),%edx
46b9a9:	0f b6 06             	movzbl (%esi),%eax
46b9ac:	83 f8 04             	cmp    $0x4,%eax
46b9af:	75 28                	jne    0x46b9d9
46b9b1:	8b 8d b0 f9 ff ff    	mov    -0x650(%ebp),%ecx
46b9b7:	81 e1 ff 0f 00 00    	and    $0xfff,%ecx
46b9bd:	83 f9 09             	cmp    $0x9,%ecx
46b9c0:	75 05                	jne    0x46b9c7
46b9c2:	b8 08 00 00 00       	mov    $0x8,%eax
46b9c7:	8b 4d d8             	mov    -0x28(%ebp),%ecx
46b9ca:	c7 01 fd ff ff ff    	movl   $0xfffffffd,(%ecx)
46b9d0:	83 6d b4 04          	subl   $0x4,-0x4c(%ebp)
46b9d4:	ff 45 bc             	incl   -0x44(%ebp)
46b9d7:	eb 14                	jmp    0x46b9ed
46b9d9:	83 f8 01             	cmp    $0x1,%eax
46b9dc:	75 0f                	jne    0x46b9ed
46b9de:	85 ff                	test   %edi,%edi
46b9e0:	75 0b                	jne    0x46b9ed
46b9e2:	83 7d 08 00          	cmpl   $0x0,0x8(%ebp)
46b9e6:	74 05                	je     0x46b9ed
46b9e8:	b8 03 00 00 00       	mov    $0x3,%eax
46b9ed:	6a 00                	push   $0x0
46b9ef:	8d 4d e0             	lea    -0x20(%ebp),%ecx
46b9f2:	51                   	push   %ecx
46b9f3:	8b 4d 08             	mov    0x8(%ebp),%ecx
46b9f6:	51                   	push   %ecx
46b9f7:	8d 4d b0             	lea    -0x50(%ebp),%ecx
46b9fa:	51                   	push   %ecx
46b9fb:	50                   	push   %eax
46b9fc:	6a 00                	push   $0x0
46b9fe:	a1 a8 75 4a 00       	mov    0x4a75a8,%eax
46ba03:	50                   	push   %eax
46ba04:	52                   	push   %edx
46ba05:	8b 45 dc             	mov    -0x24(%ebp),%eax
46ba08:	50                   	push   %eax
46ba09:	8b 00                	mov    (%eax),%eax
46ba0b:	ff 50 18             	call   *0x18(%eax)
46ba0e:	85 c0                	test   %eax,%eax
46ba10:	74 08                	je     0x46ba1a
46ba12:	8d 55 e0             	lea    -0x20(%ebp),%edx
46ba15:	e8 1a 03 00 00       	call   0x46bd34
46ba1a:	8b 5d d0             	mov    -0x30(%ebp),%ebx
46ba1d:	85 db                	test   %ebx,%ebx
46ba1f:	74 1c                	je     0x46ba3d
46ba21:	4b                   	dec    %ebx
46ba22:	8d b4 dd b0 fd ff ff 	lea    -0x250(%ebp,%ebx,8),%esi
46ba29:	8b 7e 04             	mov    0x4(%esi),%edi
46ba2c:	85 ff                	test   %edi,%edi
46ba2e:	74 09                	je     0x46ba39
46ba30:	8b d7                	mov    %edi,%edx
46ba32:	8b 06                	mov    (%esi),%eax
46ba34:	e8 17 9c f9 ff       	call   0x405650
46ba39:	85 db                	test   %ebx,%ebx