4585a6:	52                   	push   %edx
4585a7:	65 6c                	gs insb (%dx),%es:(%edi)
4585a9:	65 61                	gs popa
4585ab:	73 65                	jae    0x458612
4585ad:	53                   	push   %ebx
4585ae:	65 72 76             	gs jb  0x458627
4585b1:	65 72 50             	gs jb  0x458604
4585b4:	72 6f                	jb     0x458625
4585b6:	63 65 73             	arpl   %esp,0x73(%ebp)
4585b9:	73 00                	jae    0x4585bb
4585bb:	00 43 6f             	add    %al,0x6f(%ebx)
4585be:	52                   	push   %edx
4585bf:	65 73 75             	gs jae 0x458637
4585c2:	6d                   	insl   (%dx),%es:(%edi)
4585c3:	65 43                	gs inc %ebx
4585c5:	6c                   	insb   (%dx),%es:(%edi)
4585c6:	61                   	popa
4585c7:	73 73                	jae    0x45863c
4585c9:	4f                   	dec    %edi
4585ca:	62 6a 65             	bound  %ebp,0x65(%edx)
4585cd:	63 74 73 00          	arpl   %esi,0x0(%ebx,%esi,2)
4585d1:	00 00                	add    %al,(%eax)
4585d3:	00 43 6f             	add    %al,0x6f(%ebx)
4585d6:	53                   	push   %ebx
4585d7:	75 73                	jne    0x45864c
4585d9:	70 65                	jo     0x458640
4585db:	6e                   	outsb  %ds:(%esi),(%dx)
4585dc:	64 43                	fs inc %ebx
4585de:	6c                   	insb   (%dx),%es:(%edi)
4585df:	61                   	popa
4585e0:	73 73                	jae    0x458655
4585e2:	4f                   	dec    %edi
4585e3:	62 6a 65             	bound  %ebp,0x65(%edx)
4585e6:	63 74 73 00          	arpl   %esi,0x0(%ebx,%esi,2)
4585ea:	00 00                	add    %al,(%eax)
4585ec:	55                   	push   %ebp
4585ed:	8b ec                	mov    %esp,%ebp
4585ef:	33 c9                	xor    %ecx,%ecx
4585f1:	51                   	push   %ecx
4585f2:	51                   	push   %ecx
4585f3:	51                   	push   %ecx
4585f4:	51                   	push   %ecx
4585f5:	51                   	push   %ecx
4585f6:	51                   	push   %ecx
4585f7:	51                   	push   %ecx
4585f8:	51                   	push   %ecx
4585f9:	53                   	push   %ebx
4585fa:	56                   	push   %esi
4585fb:	8b f2                	mov    %edx,%esi
4585fd:	8b d8                	mov    %eax,%ebx
4585ff:	33 c0                	xor    %eax,%eax
458601:	55                   	push   %ebp
458602:	68 dc 86 45 00       	push   $0x4586dc
458607:	64 ff 30             	push   %fs:(%eax)
45860a:	64 89 20             	mov    %esp,%fs:(%eax)
45860d:	33 c0                	xor    %eax,%eax
45860f:	89 45 ec             	mov    %eax,-0x14(%ebp)
458612:	8d 45 fc             	lea    -0x4(%ebp),%eax
458615:	e8 0a db fa ff       	call   0x406124
45861a:	50                   	push   %eax
45861b:	6a 00                	push   $0x0
45861d:	e8 ea f0 fa ff       	call   0x40770c
458622:	85 c0                	test   %eax,%eax
458624:	75 43                	jne    0x458669
458626:	8d 45 f8             	lea    -0x8(%ebp),%eax
458629:	e8 d2 c8 fa ff       	call   0x404f00
45862e:	50                   	push   %eax
45862f:	8b 45 fc             	mov    -0x4(%ebp),%eax
458632:	50                   	push   %eax
458633:	8b 00                	mov    (%eax),%eax
458635:	ff 50 10             	call   *0x10(%eax)
458638:	8d 45 f4             	lea    -0xc(%ebp),%eax
45863b:	e8 c0 c8 fa ff       	call   0x404f00
458640:	50                   	push   %eax
458641:	8b 45 fc             	mov    -0x4(%ebp),%eax
458644:	50                   	push   %eax
458645:	8b 00                	mov    (%eax),%eax
458647:	ff 50 14             	call   *0x14(%eax)
45864a:	8d 45 f0             	lea    -0x10(%ebp),%eax
45864d:	e8 ae c8 fa ff       	call   0x404f00
458652:	50                   	push   %eax
458653:	8b 45 fc             	mov    -0x4(%ebp),%eax
458656:	50                   	push   %eax
458657:	8b 00                	mov    (%eax),%eax
458659:	ff 50 18             	call   *0x18(%eax)
45865c:	8d 45 ec             	lea    -0x14(%ebp),%eax
45865f:	50                   	push   %eax
458660:	8b 45 fc             	mov    -0x4(%ebp),%eax
458663:	50                   	push   %eax
458664:	8b 00                	mov    (%eax),%eax
458666:	ff 50 1c             	call   *0x1c(%eax)
458669:	56                   	push   %esi
45866a:	53                   	push   %ebx
45866b:	8d 45 e8             	lea    -0x18(%ebp),%eax
45866e:	8b 55 f8             	mov    -0x8(%ebp),%edx
458671:	e8 32 c3 fa ff       	call   0x4049a8
458676:	8b 45 e8             	mov    -0x18(%ebp),%eax
458679:	50                   	push   %eax
45867a:	8d 45 e4             	lea    -0x1c(%ebp),%eax
45867d:	8b 55 f0             	mov    -0x10(%ebp),%edx
458680:	e8 23 c3 fa ff       	call   0x4049a8
458685:	8b 45 e4             	mov    -0x1c(%ebp),%eax
458688:	50                   	push   %eax
458689:	8b 45 ec             	mov    -0x14(%ebp),%eax
45868c:	50                   	push   %eax
45868d:	8d 45 e0             	lea    -0x20(%ebp),%eax
458690:	8b 55 f4             	mov    -0xc(%ebp),%edx
458693:	e8 10 c3 fa ff       	call   0x4049a8
458698:	8b 4d e0             	mov    -0x20(%ebp),%ecx
45869b:	b2 01                	mov    $0x1,%dl
45869d:	a1 d8 80 45 00       	mov    0x4580d8,%eax
4586a2:	e8 0d fc ff ff       	call   0x4582b4
4586a7:	e9 bc ba fa ff       	jmp    0x404168
4586ac:	33 c0                	xor    %eax,%eax
4586ae:	5a                   	pop    %edx
4586af:	59                   	pop    %ecx
4586b0:	59                   	pop    %ecx
4586b1:	64 89 10             	mov    %edx,%fs:(%eax)
4586b4:	68 e3 86 45 00       	push   $0x4586e3
4586b9:	8d 45 e0             	lea    -0x20(%ebp),%eax
4586bc:	ba 03 00 00 00       	mov    $0x3,%edx
4586c1:	e8 7e c0 fa ff       	call   0x404744
4586c6:	8d 45 f0             	lea    -0x10(%ebp),%eax
4586c9:	ba 03 00 00 00       	mov    $0x3,%edx
4586ce:	e8 45 c8 fa ff       	call   0x404f18
4586d3:	8d 45 fc             	lea    -0x4(%ebp),%eax
4586d6:	e8 49 da fa ff       	call   0x406124
4586db:	c3                   	ret
4586dc:	e9 a7 b9 fa ff       	jmp    0x404088
4586e1:	eb d6                	jmp    0x4586b9
4586e3:	5e                   	pop    %esi
4586e4:	5b                   	pop    %ebx
4586e5:	8b e5                	mov    %ebp,%esp
4586e7:	5d                   	pop    %ebp
4586e8:	c3                   	ret
4586e9:	8d 40 00             	lea    0x0(%eax),%eax
4586ec:	55                   	push   %ebp
4586ed:	8b ec                	mov    %esp,%ebp
4586ef:	81 c4 b0 f9 ff ff    	add    $0xfffff9b0,%esp
4586f5:	53                   	push   %ebx
4586f6:	56                   	push   %esi
4586f7:	57                   	push   %edi
4586f8:	89 4d d8             	mov    %ecx,-0x28(%ebp)
4586fb:	8b f2                	mov    %edx,%esi
4586fd:	89 45 dc             	mov    %eax,-0x24(%ebp)
458700:	8d 45 e0             	lea    -0x20(%ebp),%eax
458703:	8b 15 cc 74 40 00    	mov    0x4074cc,%edx
458709:	e8 82 ca fa ff       	call   0x405190
45870e:	33 c0                	xor    %eax,%eax
458710:	55                   	push   %ebp
458711:	68 17 8a 45 00       	push   $0x458a17
458716:	64 ff 30             	push   %fs:(%eax)
458719:	64 89 20             	mov    %esp,%fs:(%eax)
45871c:	33 c0                	xor    %eax,%eax
45871e:	89 45 d0             	mov    %eax,-0x30(%ebp)
458721:	33 c9                	xor    %ecx,%ecx
458723:	55                   	push   %ebp
458724:	68 f4 89 45 00       	push   $0x4589f4
458729:	64 ff 31             	push   %fs:(%ecx)
45872c:	64 89 21             	mov    %esp,%fs:(%ecx)
45872f:	0f b6 7e 01          	movzbl 0x1(%esi),%edi
458733:	83 ff 40             	cmp    $0x40,%edi
458736:	7e 17                	jle    0x45874f
458738:	8b 0d 18 d5 46 00    	mov    0x46d518,%ecx
45873e:	b2 01                	mov    $0x1,%dl
458740:	a1 d8 80 45 00       	mov    0x4580d8,%eax
458745:	e8 ae 3b fb ff       	call   0x40c2f8
45874a:	e8 19 ba fa ff       	call   0x404168
45874f:	85 ff                	test   %edi,%edi
458751:	0f 84 c1 01 00 00    	je     0x458918
458757:	8b 45 0c             	mov    0xc(%ebp),%eax
45875a:	89 45 cc             	mov    %eax,-0x34(%ebp)
45875d:	8b c7                	mov    %edi,%eax
45875f:	03 c0                	add    %eax,%eax
458761:	8d 84 c5 b0 f9 ff ff 	lea    -0x650(%ebp,%eax,8),%eax
458768:	89 45 c8             	mov    %eax,-0x38(%ebp)
45876b:	33 db                	xor    %ebx,%ebx
45876d:	83 6d c8 10          	subl   $0x10,-0x38(%ebp)
458771:	0f b6 44 1e 03       	movzbl 0x3(%esi,%ebx,1),%eax
458776:	8b d0                	mov    %eax,%edx
458778:	80 e2 7f             	and    $0x7f,%dl
45877b:	0f b6 d2             	movzbl %dl,%edx
45877e:	89 55 d4             	mov    %edx,-0x2c(%ebp)
458781:	24 80                	and    $0x80,%al
458783:	83 7d d4 0a          	cmpl   $0xa,-0x2c(%ebp)
458787:	75 18                	jne    0x4587a1
458789:	8b 45 c8             	mov    -0x38(%ebp),%eax
45878c:	c7 00 0a 00 00 00    	movl   $0xa,(%eax)
458792:	8b 45 c8             	mov    -0x38(%ebp),%eax
458795:	c7 40 08 04 00 02 80 	movl   $0x80020004,0x8(%eax)
45879c:	e9 6e 01 00 00       	jmp    0x45890f
4587a1:	83 7d d4 48          	cmpl   $0x48,-0x2c(%ebp)
4587a5:	75 74                	jne    0x45881b
4587a7:	8b 55 d0             	mov    -0x30(%ebp),%edx
4587aa:	8d 94 d5 b0 fd ff ff 	lea    -0x250(%ebp,%edx,8),%edx
4587b1:	89 55 c4             	mov    %edx,-0x3c(%ebp)
4587b4:	84 c0                	test   %al,%al
4587b6:	74 30                	je     0x4587e8
4587b8:	8b 45 cc             	mov    -0x34(%ebp),%eax
4587bb:	8b 00                	mov    (%eax),%eax
4587bd:	8b 00                	mov    (%eax),%eax
4587bf:	e8 5c ce fa ff       	call   0x405620
4587c4:	8b 55 c4             	mov    -0x3c(%ebp),%edx
4587c7:	89 02                	mov    %eax,(%edx)
4587c9:	8b 45 cc             	mov    -0x34(%ebp),%eax
4587cc:	8b 00                	mov    (%eax),%eax
4587ce:	8b 55 c4             	mov    -0x3c(%ebp),%edx
4587d1:	89 42 04             	mov    %eax,0x4(%edx)
4587d4:	8b 45 c8             	mov    -0x38(%ebp),%eax
4587d7:	c7 00 08 40 00 00    	movl   $0x4008,(%eax)
4587dd:	8b 45 c4             	mov    -0x3c(%ebp),%eax
4587e0:	8b 55 c8             	mov    -0x38(%ebp),%edx
4587e3:	89 42 08             	mov    %eax,0x8(%edx)
4587e6:	eb 2b                	jmp    0x458813
4587e8:	8b 45 cc             	mov    -0x34(%ebp),%eax
4587eb:	8b 00                	mov    (%eax),%eax
4587ed:	e8 2e ce fa ff       	call   0x405620
4587f2:	8b 55 c4             	mov    -0x3c(%ebp),%edx
4587f5:	89 02                	mov    %eax,(%edx)
4587f7:	8b 45 c4             	mov    -0x3c(%ebp),%eax
4587fa:	33 d2                	xor    %edx,%edx
4587fc:	89 50 04             	mov    %edx,0x4(%eax)
4587ff:	8b 45 c8             	mov    -0x38(%ebp),%eax
458802:	c7 00 08 00 00 00    	movl   $0x8,(%eax)
458808:	8b 45 c4             	mov    -0x3c(%ebp),%eax
45880b:	8b 00                	mov    (%eax),%eax
45880d:	8b 55 c8             	mov    -0x38(%ebp),%edx
458810:	89 42 08             	mov    %eax,0x8(%edx)
458813:	ff 45 d0             	incl   -0x30(%ebp)
458816:	e9 f0 00 00 00       	jmp    0x45890b
45881b:	84 c0                	test   %al,%al
45881d:	74 45                	je     0x458864
45881f:	83 7d d4 0c          	cmpl   $0xc,-0x2c(%ebp)
458823:	75 22                	jne    0x458847
458825:	8b 45 cc             	mov    -0x34(%ebp),%eax
458828:	8b 00                	mov    (%eax),%eax
45882a:	66 81 38 00 01       	cmpw   $0x100,(%eax)
45882f:	75 16                	jne    0x458847
458831:	8b 45 cc             	mov    -0x34(%ebp),%eax
458834:	8b 00                	mov    (%eax),%eax
458836:	8b d0                	mov    %eax,%edx
458838:	8b 45 cc             	mov    -0x34(%ebp),%eax
45883b:	8b 00                	mov    (%eax),%eax
45883d:	b9 08 00 00 00       	mov    $0x8,%ecx
458842:	e8 a1 76 fb ff       	call   0x40fee8
458847:	8b 45 d4             	mov    -0x2c(%ebp),%eax
45884a:	0d 00 40 00 00       	or     $0x4000,%eax
45884f:	8b 55 c8             	mov    -0x38(%ebp),%edx
458852:	89 02                	mov    %eax,(%edx)
458854:	8b 45 cc             	mov    -0x34(%ebp),%eax
458857:	8b 00                	mov    (%eax),%eax
458859:	8b 55 c8             	mov    -0x38(%ebp),%edx
45885c:	89 42 08             	mov    %eax,0x8(%edx)
45885f:	e9 a7 00 00 00       	jmp    0x45890b
458864:	83 7d d4 0c          	cmpl   $0xc,-0x2c(%ebp)
458868:	75 73                	jne    0x4588dd
45886a:	8b 45 cc             	mov    -0x34(%ebp),%eax
45886d:	66 81 38 00 01       	cmpw   $0x100,(%eax)
458872:	75 3e                	jne    0x4588b2
458874:	8b 45 d0             	mov    -0x30(%ebp),%eax
458877:	8d 84 c5 b0 fd ff ff 	lea    -0x250(%ebp,%eax,8),%eax
45887e:	89 45 c0             	mov    %eax,-0x40(%ebp)
458881:	8b 45 cc             	mov    -0x34(%ebp),%eax
458884:	8b 40 08             	mov    0x8(%eax),%eax
458887:	e8 94 cd fa ff       	call   0x405620
45888c:	8b 55 c0             	mov    -0x40(%ebp),%edx
45888f:	89 02                	mov    %eax,(%edx)
458891:	8b 45 c0             	mov    -0x40(%ebp),%eax
458894:	33 d2                	xor    %edx,%edx
458896:	89 50 04             	mov    %edx,0x4(%eax)
458899:	8b 45 c8             	mov    -0x38(%ebp),%eax
45889c:	c7 00 08 00 00 00    	movl   $0x8,(%eax)
4588a2:	8b 45 c0             	mov    -0x40(%ebp),%eax
4588a5:	8b 00                	mov    (%eax),%eax
4588a7:	8b 55 c8             	mov    -0x38(%ebp),%edx
4588aa:	89 42 08             	mov    %eax,0x8(%edx)
4588ad:	ff 45 d0             	incl   -0x30(%ebp)
4588b0:	eb 59                	jmp    0x45890b
4588b2:	8b 45 cc             	mov    -0x34(%ebp),%eax
4588b5:	8b 10                	mov    (%eax),%edx
4588b7:	8b 4d c8             	mov    -0x38(%ebp),%ecx
4588ba:	89 11                	mov    %edx,(%ecx)
4588bc:	8b 50 04             	mov    0x4(%eax),%edx
4588bf:	8b 4d c8             	mov    -0x38(%ebp),%ecx
4588c2:	89 51 04             	mov    %edx,0x4(%ecx)
4588c5:	8b 50 08             	mov    0x8(%eax),%edx
4588c8:	8b 4d c8             	mov    -0x38(%ebp),%ecx
4588cb:	89 51 08             	mov    %edx,0x8(%ecx)
4588ce:	8b 40 0c             	mov    0xc(%eax),%eax
4588d1:	8b 55 c8             	mov    -0x38(%ebp),%edx
4588d4:	89 42 0c             	mov    %eax,0xc(%edx)
4588d7:	83 45 cc 0c          	addl   $0xc,-0x34(%ebp)
4588db:	eb 2e                	jmp    0x45890b
4588dd:	8b 45 c8             	mov    -0x38(%ebp),%eax
4588e0:	8b 55 d4             	mov    -0x2c(%ebp),%edx
4588e3:	89 10                	mov    %edx,(%eax)
4588e5:	8b 45 cc             	mov    -0x34(%ebp),%eax
4588e8:	8b 00                	mov    (%eax),%eax
4588ea:	8b 55 c8             	mov    -0x38(%ebp),%edx
4588ed:	89 42 08             	mov    %eax,0x8(%edx)
4588f0:	83 7d d4 05          	cmpl   $0x5,-0x2c(%ebp)
4588f4:	7c 15                	jl     0x45890b
4588f6:	83 7d d4 07          	cmpl   $0x7,-0x2c(%ebp)
4588fa:	7f 0f                	jg     0x45890b
4588fc:	83 45 cc 04          	addl   $0x4,-0x34(%ebp)
458900:	8b 45 cc             	mov    -0x34(%ebp),%eax
458903:	8b 00                	mov    (%eax),%eax
458905:	8b 55 c8             	mov    -0x38(%ebp),%edx
458908:	89 42 0c             	mov    %eax,0xc(%edx)
45890b:	83 45 cc 04          	addl   $0x4,-0x34(%ebp)
45890f:	43                   	inc    %ebx
458910:	3b fb                	cmp    %ebx,%edi
458912:	0f 85 55 fe ff ff    	jne    0x45876d
458918:	8d 85 b0 f9 ff ff    	lea    -0x650(%ebp),%eax
45891e:	89 45 b0             	mov    %eax,-0x50(%ebp)
458921:	8b 45 d8             	mov    -0x28(%ebp),%eax
458924:	83 c0 04             	add    $0x4,%eax
458927:	89 45 b4             	mov    %eax,-0x4c(%ebp)
45892a:	89 7d b8             	mov    %edi,-0x48(%ebp)
45892d:	0f b6 46 02          	movzbl 0x2(%esi),%eax
458931:	89 45 bc             	mov    %eax,-0x44(%ebp)
458934:	8b 45 d8             	mov    -0x28(%ebp),%eax
458937:	8b 10                	mov    (%eax),%edx
458939:	0f b6 06             	movzbl (%esi),%eax
45893c:	83 f8 04             	cmp    $0x4,%eax
45893f:	75 28                	jne    0x458969
458941:	8b 8d b0 f9 ff ff    	mov    -0x650(%ebp),%ecx
458947:	81 e1 ff 0f 00 00    	and    $0xfff,%ecx
45894d:	83 f9 09             	cmp    $0x9,%ecx
458950:	75 05                	jne    0x458957
458952:	b8 08 00 00 00       	mov    $0x8,%eax
458957:	8b 4d d8             	mov    -0x28(%ebp),%ecx
45895a:	c7 01 fd ff ff ff    	movl   $0xfffffffd,(%ecx)
458960:	83 6d b4 04          	subl   $0x4,-0x4c(%ebp)
458964:	ff 45 bc             	incl   -0x44(%ebp)
458967:	eb 14                	jmp    0x45897d
458969:	83 f8 01             	cmp    $0x1,%eax
45896c:	75 0f                	jne    0x45897d
45896e:	85 ff                	test   %edi,%edi
458970:	75 0b                	jne    0x45897d
458972:	83 7d 08 00          	cmpl   $0x0,0x8(%ebp)
458976:	74 05                	je     0x45897d
458978:	b8 03 00 00 00       	mov    $0x3,%eax
45897d:	6a 00                	push   $0x0
45897f:	8d 4d e0             	lea    -0x20(%ebp),%ecx
458982:	51                   	push   %ecx
458983:	8b 4d 08             	mov    0x8(%ebp),%ecx
458986:	51                   	push   %ecx
458987:	8d 4d b0             	lea    -0x50(%ebp),%ecx
45898a:	51                   	push   %ecx