40f5d8:	5e                   	pop    %esi
40f5d9:	89 30                	mov    %esi,(%eax)
40f5db:	e8 15 c0 ff ff       	call   0x40b5f5
40f5e0:	e9 a2 00 00 00       	jmp    0x40f687
40f5e5:	33 c0                	xor    %eax,%eax
40f5e7:	66 89 07             	mov    %ax,(%edi)
40f5ea:	8b 45 08             	mov    0x8(%ebp),%eax
40f5ed:	85 c0                	test   %eax,%eax
40f5ef:	74 02                	je     0x40f5f3
40f5f1:	89 30                	mov    %esi,(%eax)
40f5f3:	ff 75 1c             	push   0x1c(%ebp)
40f5f6:	8d 4d f0             	lea    -0x10(%ebp),%ecx
40f5f9:	e8 ff 5b ff ff       	call   0x4051fd
40f5fe:	8b c3                	mov    %ebx,%eax
40f600:	39 5d 18             	cmp    %ebx,0x18(%ebp)
40f603:	77 03                	ja     0x40f608
40f605:	8b 45 18             	mov    0x18(%ebp),%eax
40f608:	3d ff ff ff 7f       	cmp    $0x7fffffff,%eax
40f60d:	76 09                	jbe    0x40f618
40f60f:	e8 69 8b ff ff       	call   0x40817d
40f614:	6a 16                	push   $0x16
40f616:	eb 43                	jmp    0x40f65b
40f618:	8d 4d f0             	lea    -0x10(%ebp),%ecx
40f61b:	51                   	push   %ecx
40f61c:	50                   	push   %eax
40f61d:	ff 75 14             	push   0x14(%ebp)
40f620:	57                   	push   %edi
40f621:	e8 2d fe ff ff       	call   0x40f453
40f626:	83 c4 10             	add    $0x10,%esp
40f629:	83 f8 ff             	cmp    $0xffffffff,%eax
40f62c:	75 12                	jne    0x40f640
40f62e:	85 ff                	test   %edi,%edi
40f630:	74 05                	je     0x40f637
40f632:	33 c0                	xor    %eax,%eax
40f634:	66 89 07             	mov    %ax,(%edi)
40f637:	e8 41 8b ff ff       	call   0x40817d
40f63c:	8b 30                	mov    (%eax),%esi
40f63e:	eb 3a                	jmp    0x40f67a
40f640:	40                   	inc    %eax
40f641:	85 ff                	test   %edi,%edi
40f643:	74 2c                	je     0x40f671
40f645:	3b c3                	cmp    %ebx,%eax
40f647:	76 21                	jbe    0x40f66a
40f649:	83 7d 18 ff          	cmpl   $0xffffffff,0x18(%ebp)
40f64d:	74 16                	je     0x40f665
40f64f:	33 c0                	xor    %eax,%eax
40f651:	66 89 07             	mov    %ax,(%edi)
40f654:	e8 24 8b ff ff       	call   0x40817d
40f659:	6a 22                	push   $0x22
40f65b:	5e                   	pop    %esi
40f65c:	89 30                	mov    %esi,(%eax)
40f65e:	e8 92 bf ff ff       	call   0x40b5f5
40f663:	eb 15                	jmp    0x40f67a
40f665:	6a 50                	push   $0x50
40f667:	8b c3                	mov    %ebx,%eax
40f669:	5e                   	pop    %esi
40f66a:	33 c9                	xor    %ecx,%ecx
40f66c:	66 89 4c 47 fe       	mov    %cx,-0x2(%edi,%eax,2)
40f671:	8b 4d 08             	mov    0x8(%ebp),%ecx
40f674:	85 c9                	test   %ecx,%ecx
40f676:	74 02                	je     0x40f67a
40f678:	89 01                	mov    %eax,(%ecx)
40f67a:	80 7d fc 00          	cmpb   $0x0,-0x4(%ebp)
40f67e:	74 07                	je     0x40f687
40f680:	8b 4d f8             	mov    -0x8(%ebp),%ecx
40f683:	83 61 70 fd          	andl   $0xfffffffd,0x70(%ecx)
40f687:	5f                   	pop    %edi
40f688:	8b c6                	mov    %esi,%eax
40f68a:	5e                   	pop    %esi
40f68b:	5b                   	pop    %ebx
40f68c:	c9                   	leave
40f68d:	c3                   	ret
40f68e:	55                   	push   %ebp
40f68f:	8b ec                	mov    %esp,%ebp
40f691:	6a 00                	push   $0x0
40f693:	ff 75 18             	push   0x18(%ebp)
40f696:	ff 75 14             	push   0x14(%ebp)
40f699:	ff 75 10             	push   0x10(%ebp)
40f69c:	ff 75 0c             	push   0xc(%ebp)
40f69f:	ff 75 08             	push   0x8(%ebp)
40f6a2:	e8 0b ff ff ff       	call   0x40f5b2
40f6a7:	83 c4 18             	add    $0x18,%esp
40f6aa:	5d                   	pop    %ebp
40f6ab:	c3                   	ret
40f6ac:	55                   	push   %ebp
40f6ad:	8b ec                	mov    %esp,%ebp
40f6af:	83 ec 2c             	sub    $0x2c,%esp
40f6b2:	a1 90 08 42 00       	mov    0x420890,%eax
40f6b7:	33 c5                	xor    %ebp,%eax
40f6b9:	89 45 fc             	mov    %eax,-0x4(%ebp)
40f6bc:	8b 45 08             	mov    0x8(%ebp),%eax
40f6bf:	53                   	push   %ebx
40f6c0:	8b 5d 10             	mov    0x10(%ebp),%ebx
40f6c3:	56                   	push   %esi
40f6c4:	57                   	push   %edi
40f6c5:	8b 7d 0c             	mov    0xc(%ebp),%edi
40f6c8:	33 f6                	xor    %esi,%esi
40f6ca:	89 45 e8             	mov    %eax,-0x18(%ebp)
40f6cd:	89 7d ec             	mov    %edi,-0x14(%ebp)
40f6d0:	89 75 f0             	mov    %esi,-0x10(%ebp)
40f6d3:	85 c0                	test   %eax,%eax
40f6d5:	74 0b                	je     0x40f6e2
40f6d7:	85 db                	test   %ebx,%ebx
40f6d9:	75 07                	jne    0x40f6e2
40f6db:	33 c0                	xor    %eax,%eax
40f6dd:	e9 20 02 00 00       	jmp    0x40f902
40f6e2:	85 ff                	test   %edi,%edi
40f6e4:	75 18                	jne    0x40f6fe
40f6e6:	e8 92 8a ff ff       	call   0x40817d
40f6eb:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
40f6f1:	e8 ff be ff ff       	call   0x40b5f5
40f6f6:	83 c8 ff             	or     $0xffffffff,%eax
40f6f9:	e9 04 02 00 00       	jmp    0x40f902
40f6fe:	ff 75 14             	push   0x14(%ebp)
40f701:	8d 4d d4             	lea    -0x2c(%ebp),%ecx
40f704:	e8 f4 5a ff ff       	call   0x4051fd
40f709:	8b 4d e8             	mov    -0x18(%ebp),%ecx
40f70c:	8b 45 d4             	mov    -0x2c(%ebp),%eax
40f70f:	85 c9                	test   %ecx,%ecx
40f711:	0f 84 82 01 00 00    	je     0x40f899
40f717:	39 b0 a8 00 00 00    	cmp    %esi,0xa8(%eax)
40f71d:	75 34                	jne    0x40f753
40f71f:	85 db                	test   %ebx,%ebx
40f721:	0f 84 98 01 00 00    	je     0x40f8bf
40f727:	ba ff 00 00 00       	mov    $0xff,%edx
40f72c:	66 39 17             	cmp    %dx,(%edi)
40f72f:	0f 87 54 01 00 00    	ja     0x40f889
40f735:	8a 07                	mov    (%edi),%al
40f737:	88 04 31             	mov    %al,(%ecx,%esi,1)
40f73a:	66 8b 07             	mov    (%edi),%ax
40f73d:	83 c7 02             	add    $0x2,%edi
40f740:	66 85 c0             	test   %ax,%ax
40f743:	0f 84 76 01 00 00    	je     0x40f8bf
40f749:	46                   	inc    %esi
40f74a:	3b f3                	cmp    %ebx,%esi
40f74c:	72 de                	jb     0x40f72c
40f74e:	e9 6c 01 00 00       	jmp    0x40f8bf
40f753:	83 78 74 01          	cmpl   $0x1,0x74(%eax)
40f757:	75 61                	jne    0x40f7ba
40f759:	85 db                	test   %ebx,%ebx
40f75b:	74 22                	je     0x40f77f
40f75d:	8b c7                	mov    %edi,%eax
40f75f:	8b d3                	mov    %ebx,%edx
40f761:	66 39 30             	cmp    %si,(%eax)
40f764:	74 06                	je     0x40f76c
40f766:	83 c0 02             	add    $0x2,%eax
40f769:	4a                   	dec    %edx
40f76a:	75 f5                	jne    0x40f761
40f76c:	85 d2                	test   %edx,%edx
40f76e:	74 0c                	je     0x40f77c
40f770:	66 39 30             	cmp    %si,(%eax)
40f773:	75 07                	jne    0x40f77c
40f775:	8b d8                	mov    %eax,%ebx
40f777:	2b df                	sub    %edi,%ebx
40f779:	d1 fb                	sar    $1,%ebx
40f77b:	43                   	inc    %ebx
40f77c:	8b 45 d4             	mov    -0x2c(%ebp),%eax
40f77f:	8d 55 f0             	lea    -0x10(%ebp),%edx
40f782:	52                   	push   %edx
40f783:	56                   	push   %esi
40f784:	53                   	push   %ebx
40f785:	51                   	push   %ecx
40f786:	53                   	push   %ebx
40f787:	57                   	push   %edi
40f788:	56                   	push   %esi
40f789:	ff 70 04             	push   0x4(%eax)
40f78c:	ff 15 4c 90 41 00    	call   *0x41904c
40f792:	8b f0                	mov    %eax,%esi
40f794:	85 f6                	test   %esi,%esi
40f796:	0f 84 ed 00 00 00    	je     0x40f889
40f79c:	83 7d f0 00          	cmpl   $0x0,-0x10(%ebp)
40f7a0:	0f 85 e3 00 00 00    	jne    0x40f889
40f7a6:	8b 45 e8             	mov    -0x18(%ebp),%eax
40f7a9:	80 7c 30 ff 00       	cmpb   $0x0,-0x1(%eax,%esi,1)
40f7ae:	0f 85 0b 01 00 00    	jne    0x40f8bf
40f7b4:	4e                   	dec    %esi
40f7b5:	e9 05 01 00 00       	jmp    0x40f8bf
40f7ba:	8d 55 f0             	lea    -0x10(%ebp),%edx
40f7bd:	52                   	push   %edx
40f7be:	56                   	push   %esi
40f7bf:	53                   	push   %ebx
40f7c0:	51                   	push   %ecx
40f7c1:	6a ff                	push   $0xffffffff
40f7c3:	57                   	push   %edi
40f7c4:	56                   	push   %esi
40f7c5:	ff 70 04             	push   0x4(%eax)
40f7c8:	ff 15 4c 90 41 00    	call   *0x41904c
40f7ce:	8b f8                	mov    %eax,%edi
40f7d0:	85 ff                	test   %edi,%edi
40f7d2:	74 11                	je     0x40f7e5
40f7d4:	39 75 f0             	cmp    %esi,-0x10(%ebp)
40f7d7:	0f 85 ac 00 00 00    	jne    0x40f889
40f7dd:	8d 77 ff             	lea    -0x1(%edi),%esi
40f7e0:	e9 da 00 00 00       	jmp    0x40f8bf
40f7e5:	39 75 f0             	cmp    %esi,-0x10(%ebp)
40f7e8:	0f 85 9b 00 00 00    	jne    0x40f889
40f7ee:	ff 15 18 90 41 00    	call   *0x419018
40f7f4:	83 f8 7a             	cmp    $0x7a,%eax
40f7f7:	0f 85 8c 00 00 00    	jne    0x40f889
40f7fd:	85 db                	test   %ebx,%ebx
40f7ff:	0f 84 ee 00 00 00    	je     0x40f8f3
40f805:	8b 45 ec             	mov    -0x14(%ebp),%eax
40f808:	8d 4d f0             	lea    -0x10(%ebp),%ecx
40f80b:	51                   	push   %ecx
40f80c:	8b 4d d4             	mov    -0x2c(%ebp),%ecx
40f80f:	56                   	push   %esi
40f810:	ff 71 74             	push   0x74(%ecx)
40f813:	8d 55 f4             	lea    -0xc(%ebp),%edx
40f816:	52                   	push   %edx
40f817:	6a 01                	push   $0x1
40f819:	50                   	push   %eax
40f81a:	56                   	push   %esi
40f81b:	ff 71 04             	push   0x4(%ecx)
40f81e:	ff 15 4c 90 41 00    	call   *0x41904c
40f824:	8b d0                	mov    %eax,%edx
40f826:	85 d2                	test   %edx,%edx
40f828:	0f 84 b7 00 00 00    	je     0x40f8e5
40f82e:	39 75 f0             	cmp    %esi,-0x10(%ebp)
40f831:	0f 85 ae 00 00 00    	jne    0x40f8e5
40f837:	85 d2                	test   %edx,%edx
40f839:	0f 88 a6 00 00 00    	js     0x40f8e5
40f83f:	83 fa 05             	cmp    $0x5,%edx
40f842:	0f 87 9d 00 00 00    	ja     0x40f8e5
40f848:	8d 04 3a             	lea    (%edx,%edi,1),%eax
40f84b:	3b c3                	cmp    %ebx,%eax
40f84d:	0f 87 a0 00 00 00    	ja     0x40f8f3
40f853:	8b c6                	mov    %esi,%eax
40f855:	89 45 e4             	mov    %eax,-0x1c(%ebp)
40f858:	85 d2                	test   %edx,%edx
40f85a:	7e 1e                	jle    0x40f87a
40f85c:	8b 4d e8             	mov    -0x18(%ebp),%ecx
40f85f:	8a 44 05 f4          	mov    -0xc(%ebp,%eax,1),%al
40f863:	88 04 39             	mov    %al,(%ecx,%edi,1)
40f866:	84 c0                	test   %al,%al
40f868:	0f 84 85 00 00 00    	je     0x40f8f3
40f86e:	8b 45 e4             	mov    -0x1c(%ebp),%eax
40f871:	40                   	inc    %eax
40f872:	47                   	inc    %edi
40f873:	89 45 e4             	mov    %eax,-0x1c(%ebp)
40f876:	3b c2                	cmp    %edx,%eax
40f878:	7c e5                	jl     0x40f85f
40f87a:	8b 45 ec             	mov    -0x14(%ebp),%eax
40f87d:	83 c0 02             	add    $0x2,%eax
40f880:	89 45 ec             	mov    %eax,-0x14(%ebp)
40f883:	3b fb                	cmp    %ebx,%edi
40f885:	72 81                	jb     0x40f808
40f887:	eb 6a                	jmp    0x40f8f3
40f889:	e8 ef 88 ff ff       	call   0x40817d
40f88e:	c7 00 2a 00 00 00    	movl   $0x2a,(%eax)
40f894:	83 ce ff             	or     $0xffffffff,%esi
40f897:	eb 26                	jmp    0x40f8bf
40f899:	39 b0 a8 00 00 00    	cmp    %esi,0xa8(%eax)
40f89f:	75 22                	jne    0x40f8c3
40f8a1:	0f b7 07             	movzwl (%edi),%eax
40f8a4:	66 85 c0             	test   %ax,%ax
40f8a7:	74 16                	je     0x40f8bf
40f8a9:	ba ff 00 00 00       	mov    $0xff,%edx
40f8ae:	66 3b c2             	cmp    %dx,%ax
40f8b1:	77 32                	ja     0x40f8e5
40f8b3:	83 c7 02             	add    $0x2,%edi
40f8b6:	46                   	inc    %esi
40f8b7:	0f b7 07             	movzwl (%edi),%eax
40f8ba:	66 85 c0             	test   %ax,%ax
40f8bd:	75 ef                	jne    0x40f8ae
40f8bf:	8b fe                	mov    %esi,%edi
40f8c1:	eb 30                	jmp    0x40f8f3
40f8c3:	8d 4d f0             	lea    -0x10(%ebp),%ecx
40f8c6:	51                   	push   %ecx
40f8c7:	56                   	push   %esi
40f8c8:	56                   	push   %esi
40f8c9:	56                   	push   %esi
40f8ca:	6a ff                	push   $0xffffffff
40f8cc:	57                   	push   %edi
40f8cd:	56                   	push   %esi
40f8ce:	ff 70 04             	push   0x4(%eax)
40f8d1:	ff 15 4c 90 41 00    	call   *0x41904c
40f8d7:	85 c0                	test   %eax,%eax
40f8d9:	74 0a                	je     0x40f8e5
40f8db:	39 75 f0             	cmp    %esi,-0x10(%ebp)
40f8de:	75 05                	jne    0x40f8e5
40f8e0:	8d 78 ff             	lea    -0x1(%eax),%edi
40f8e3:	eb 0e                	jmp    0x40f8f3
40f8e5:	e8 93 88 ff ff       	call   0x40817d
40f8ea:	c7 00 2a 00 00 00    	movl   $0x2a,(%eax)
40f8f0:	83 cf ff             	or     $0xffffffff,%edi
40f8f3:	80 7d e0 00          	cmpb   $0x0,-0x20(%ebp)
40f8f7:	74 07                	je     0x40f900
40f8f9:	8b 4d dc             	mov    -0x24(%ebp),%ecx
40f8fc:	83 61 70 fd          	andl   $0xfffffffd,0x70(%ecx)
40f900:	8b c7                	mov    %edi,%eax
40f902:	8b 4d fc             	mov    -0x4(%ebp),%ecx
40f905:	5f                   	pop    %edi
40f906:	5e                   	pop    %esi
40f907:	33 cd                	xor    %ebp,%ecx
40f909:	5b                   	pop    %ebx
40f90a:	e8 2a 4e ff ff       	call   0x404739
40f90f:	c9                   	leave
40f910:	c3                   	ret
40f911:	55                   	push   %ebp
40f912:	8b ec                	mov    %esp,%ebp
40f914:	51                   	push   %ecx
40f915:	56                   	push   %esi
40f916:	8b 75 0c             	mov    0xc(%ebp),%esi
40f919:	33 c0                	xor    %eax,%eax
40f91b:	57                   	push   %edi
40f91c:	8b 7d 10             	mov    0x10(%ebp),%edi
40f91f:	89 45 fc             	mov    %eax,-0x4(%ebp)
40f922:	85 f6                	test   %esi,%esi
40f924:	74 2e                	je     0x40f954
40f926:	85 ff                	test   %edi,%edi
40f928:	74 2e                	je     0x40f958
40f92a:	85 f6                	test   %esi,%esi
40f92c:	74 02                	je     0x40f930
40f92e:	88 06                	mov    %al,(%esi)
40f930:	53                   	push   %ebx
40f931:	8b 5d 08             	mov    0x8(%ebp),%ebx
40f934:	85 db                	test   %ebx,%ebx
40f936:	74 02                	je     0x40f93a
40f938:	89 03                	mov    %eax,(%ebx)
40f93a:	8b c7                	mov    %edi,%eax
40f93c:	39 7d 18             	cmp    %edi,0x18(%ebp)
40f93f:	77 03                	ja     0x40f944
40f941:	8b 45 18             	mov    0x18(%ebp),%eax
40f944:	3d ff ff ff 7f       	cmp    $0x7fffffff,%eax
40f949:	76 20                	jbe    0x40f96b
40f94b:	e8 2d 88 ff ff       	call   0x40817d
40f950:	6a 16                	push   $0x16
40f952:	eb 59                	jmp    0x40f9ad
40f954:	85 ff                	test   %edi,%edi
40f956:	74 d2                	je     0x40f92a
40f958:	e8 20 88 ff ff       	call   0x40817d
40f95d:	6a 16                	push   $0x16
40f95f:	5e                   	pop    %esi
40f960:	89 30                	mov    %esi,(%eax)
40f962:	e8 8e bc ff ff       	call   0x40b5f5
40f967:	8b c6                	mov    %esi,%eax
40f969:	eb 6b                	jmp    0x40f9d6
40f96b:	ff 75 1c             	push   0x1c(%ebp)
40f96e:	50                   	push   %eax
40f96f:	ff 75 14             	push   0x14(%ebp)
40f972:	56                   	push   %esi
40f973:	e8 34 fd ff ff       	call   0x40f6ac
40f978:	83 c4 10             	add    $0x10,%esp
40f97b:	83 f8 ff             	cmp    $0xffffffff,%eax
40f97e:	75 10                	jne    0x40f990
40f980:	85 f6                	test   %esi,%esi
40f982:	74 03                	je     0x40f987
40f984:	c6 06 00             	movb   $0x0,(%esi)
40f987:	e8 f1 87 ff ff       	call   0x40817d
40f98c:	8b 00                	mov    (%eax),%eax