40a6e9:	e9 f2 01 00 00       	jmp    0x40a8e0
40a6ee:	ba 2c a9 40 00       	mov    $0x40a92c,%edx
40a6f3:	b9 04 00 00 00       	mov    $0x4,%ecx
40a6f8:	8b c6                	mov    %esi,%eax
40a6fa:	e8 61 e3 ff ff       	call   0x408a60
40a6ff:	85 c0                	test   %eax,%eax
40a701:	75 34                	jne    0x40a737
40a703:	66 83 7d ea 0c       	cmpw   $0xc,-0x16(%ebp)
40a708:	73 11                	jae    0x40a71b
40a70a:	8b 45 08             	mov    0x8(%ebp),%eax
40a70d:	50                   	push   %eax
40a70e:	a1 98 56 47 00       	mov    0x475698,%eax
40a713:	e8 f8 f6 ff ff       	call   0x409e10
40a718:	59                   	pop    %ecx
40a719:	eb 0f                	jmp    0x40a72a
40a71b:	8b 45 08             	mov    0x8(%ebp),%eax
40a71e:	50                   	push   %eax
40a71f:	a1 9c 56 47 00       	mov    0x47569c,%eax
40a724:	e8 e7 f6 ff ff       	call   0x409e10
40a729:	59                   	pop    %ecx
40a72a:	83 45 fc 03          	addl   $0x3,-0x4(%ebp)
40a72e:	c6 45 e2 01          	movb   $0x1,-0x1e(%ebp)
40a732:	e9 a9 01 00 00       	jmp    0x40a8e0
40a737:	ba 34 a9 40 00       	mov    $0x40a934,%edx
40a73c:	b9 04 00 00 00       	mov    $0x4,%ecx
40a741:	8b c6                	mov    %esi,%eax
40a743:	e8 18 e3 ff ff       	call   0x408a60
40a748:	85 c0                	test   %eax,%eax
40a74a:	75 32                	jne    0x40a77e
40a74c:	55                   	push   %ebp
40a74d:	e8 56 f7 ff ff       	call   0x409ea8
40a752:	59                   	pop    %ecx
40a753:	8b 45 08             	mov    0x8(%ebp),%eax
40a756:	50                   	push   %eax
40a757:	8b 45 08             	mov    0x8(%ebp),%eax
40a75a:	ff 70 0c             	push   0xc(%eax)
40a75d:	ff 70 08             	push   0x8(%eax)
40a760:	e8 53 f5 ff ff       	call   0x409cb8
40a765:	0f b7 c0             	movzwl %ax,%eax
40a768:	8b 04 85 20 57 47 00 	mov    0x475720(,%eax,4),%eax
40a76f:	e8 9c f6 ff ff       	call   0x409e10
40a774:	59                   	pop    %ecx
40a775:	83 45 fc 03          	addl   $0x3,-0x4(%ebp)
40a779:	e9 62 01 00 00       	jmp    0x40a8e0
40a77e:	ba 3c a9 40 00       	mov    $0x40a93c,%edx
40a783:	b9 03 00 00 00       	mov    $0x3,%ecx
40a788:	8b c6                	mov    %esi,%eax
40a78a:	e8 d1 e2 ff ff       	call   0x408a60
40a78f:	85 c0                	test   %eax,%eax
40a791:	75 32                	jne    0x40a7c5
40a793:	55                   	push   %ebp
40a794:	e8 0f f7 ff ff       	call   0x409ea8
40a799:	59                   	pop    %ecx
40a79a:	8b 45 08             	mov    0x8(%ebp),%eax
40a79d:	50                   	push   %eax
40a79e:	8b 45 08             	mov    0x8(%ebp),%eax
40a7a1:	ff 70 0c             	push   0xc(%eax)
40a7a4:	ff 70 08             	push   0x8(%eax)
40a7a7:	e8 0c f5 ff ff       	call   0x409cb8
40a7ac:	0f b7 c0             	movzwl %ax,%eax
40a7af:	8b 04 85 04 57 47 00 	mov    0x475704(,%eax,4),%eax
40a7b6:	e8 55 f6 ff ff       	call   0x409e10
40a7bb:	59                   	pop    %ecx
40a7bc:	83 45 fc 02          	addl   $0x2,-0x4(%ebp)
40a7c0:	e9 1b 01 00 00       	jmp    0x40a8e0
40a7c5:	8b 45 08             	mov    0x8(%ebp),%eax
40a7c8:	50                   	push   %eax
40a7c9:	8d 45 fb             	lea    -0x5(%ebp),%eax
40a7cc:	ba 01 00 00 00       	mov    $0x1,%edx
40a7d1:	e8 f6 f5 ff ff       	call   0x409dcc
40a7d6:	59                   	pop    %ecx
40a7d7:	e9 04 01 00 00       	jmp    0x40a8e0
40a7dc:	55                   	push   %ebp
40a7dd:	e8 9a f6 ff ff       	call   0x409e7c
40a7e2:	59                   	pop    %ecx
40a7e3:	8b 45 08             	mov    0x8(%ebp),%eax
40a7e6:	50                   	push   %eax
40a7e7:	a1 8c 56 47 00       	mov    0x47568c,%eax
40a7ec:	e8 9f f9 ff ff       	call   0x40a190
40a7f1:	59                   	pop    %ecx
40a7f2:	55                   	push   %ebp
40a7f3:	e8 e8 f6 ff ff       	call   0x409ee0
40a7f8:	59                   	pop    %ecx
40a7f9:	66 83 7d ea 00       	cmpw   $0x0,-0x16(%ebp)
40a7fe:	75 12                	jne    0x40a812
40a800:	66 83 7d e8 00       	cmpw   $0x0,-0x18(%ebp)
40a805:	75 0b                	jne    0x40a812
40a807:	66 83 7d e6 00       	cmpw   $0x0,-0x1a(%ebp)
40a80c:	0f 84 ce 00 00 00    	je     0x40a8e0
40a812:	8b 45 08             	mov    0x8(%ebp),%eax
40a815:	50                   	push   %eax
40a816:	b8 40 a9 40 00       	mov    $0x40a940,%eax
40a81b:	ba 01 00 00 00       	mov    $0x1,%edx
40a820:	e8 a7 f5 ff ff       	call   0x409dcc
40a825:	59                   	pop    %ecx
40a826:	8b 45 08             	mov    0x8(%ebp),%eax
40a829:	50                   	push   %eax
40a82a:	a1 a4 56 47 00       	mov    0x4756a4,%eax
40a82f:	e8 5c f9 ff ff       	call   0x40a190
40a834:	59                   	pop    %ecx
40a835:	e9 a6 00 00 00       	jmp    0x40a8e0
40a83a:	80 3d 89 56 47 00 00 	cmpb   $0x0,0x475689
40a841:	0f 84 99 00 00 00    	je     0x40a8e0
40a847:	8b 45 08             	mov    0x8(%ebp),%eax
40a84a:	50                   	push   %eax
40a84b:	b8 89 56 47 00       	mov    $0x475689,%eax
40a850:	ba 01 00 00 00       	mov    $0x1,%edx
40a855:	e8 72 f5 ff ff       	call   0x409dcc
40a85a:	59                   	pop    %ecx
40a85b:	e9 80 00 00 00       	jmp    0x40a8e0
40a860:	80 3d 94 56 47 00 00 	cmpb   $0x0,0x475694
40a867:	74 77                	je     0x40a8e0
40a869:	8b 45 08             	mov    0x8(%ebp),%eax
40a86c:	50                   	push   %eax
40a86d:	b8 94 56 47 00       	mov    $0x475694,%eax
40a872:	ba 01 00 00 00       	mov    $0x1,%edx
40a877:	e8 50 f5 ff ff       	call   0x409dcc
40a87c:	59                   	pop    %ecx
40a87d:	eb 61                	jmp    0x40a8e0
40a87f:	8b 75 fc             	mov    -0x4(%ebp),%esi
40a882:	eb 1e                	jmp    0x40a8a2
40a884:	25 ff 00 00 00       	and    $0xff,%eax
40a889:	0f a3 05 0c 91 46 00 	bt     %eax,0x46910c
40a890:	73 0d                	jae    0x40a89f
40a892:	8b 45 fc             	mov    -0x4(%ebp),%eax
40a895:	e8 3e 1e 00 00       	call   0x40c6d8
40a89a:	89 45 fc             	mov    %eax,-0x4(%ebp)
40a89d:	eb 03                	jmp    0x40a8a2
40a89f:	ff 45 fc             	incl   -0x4(%ebp)
40a8a2:	8b 45 fc             	mov    -0x4(%ebp),%eax
40a8a5:	8a 00                	mov    (%eax),%al
40a8a7:	84 c0                	test   %al,%al
40a8a9:	74 05                	je     0x40a8b0
40a8ab:	3a 45 fb             	cmp    -0x5(%ebp),%al
40a8ae:	75 d4                	jne    0x40a884
40a8b0:	8b 45 08             	mov    0x8(%ebp),%eax
40a8b3:	50                   	push   %eax
40a8b4:	8b 55 fc             	mov    -0x4(%ebp),%edx
40a8b7:	2b d6                	sub    %esi,%edx
40a8b9:	8b c6                	mov    %esi,%eax
40a8bb:	e8 0c f5 ff ff       	call   0x409dcc
40a8c0:	59                   	pop    %ecx
40a8c1:	8b 45 fc             	mov    -0x4(%ebp),%eax
40a8c4:	80 38 00             	cmpb   $0x0,(%eax)
40a8c7:	74 17                	je     0x40a8e0
40a8c9:	ff 45 fc             	incl   -0x4(%ebp)
40a8cc:	eb 12                	jmp    0x40a8e0
40a8ce:	8b 45 08             	mov    0x8(%ebp),%eax
40a8d1:	50                   	push   %eax
40a8d2:	8d 45 fb             	lea    -0x5(%ebp),%eax
40a8d5:	ba 01 00 00 00       	mov    $0x1,%edx
40a8da:	e8 ed f4 ff ff       	call   0x409dcc
40a8df:	59                   	pop    %ecx
40a8e0:	8b 45 fc             	mov    -0x4(%ebp),%eax
40a8e3:	8a 00                	mov    (%eax),%al
40a8e5:	84 c0                	test   %al,%al
40a8e7:	0f 85 fa f8 ff ff    	jne    0x40a1e7
40a8ed:	8b 45 08             	mov    0x8(%ebp),%eax
40a8f0:	ff 88 f8 fe ff ff    	decl   -0x108(%eax)
40a8f6:	33 c0                	xor    %eax,%eax
40a8f8:	5a                   	pop    %edx
40a8f9:	59                   	pop    %ecx
40a8fa:	59                   	pop    %ecx
40a8fb:	64 89 10             	mov    %edx,%fs:(%eax)
40a8fe:	68 18 a9 40 00       	push   $0x40a918
40a903:	8d 45 d8             	lea    -0x28(%ebp),%eax
40a906:	ba 02 00 00 00       	mov    $0x2,%edx
40a90b:	e8 64 97 ff ff       	call   0x404074
40a910:	c3                   	ret
40a911:	e9 3e 91 ff ff       	jmp    0x403a54
40a916:	eb eb                	jmp    0x40a903
40a918:	5e                   	pop    %esi
40a919:	5b                   	pop    %ebx
40a91a:	8b e5                	mov    %ebp,%esp
40a91c:	5d                   	pop    %ebp
40a91d:	c3                   	ret
40a91e:	00 00                	add    %al,(%eax)
40a920:	41                   	inc    %ecx
40a921:	4d                   	dec    %ebp
40a922:	2f                   	das
40a923:	50                   	push   %eax
40a924:	4d                   	dec    %ebp
40a925:	00 00                	add    %al,(%eax)
40a927:	00 41 2f             	add    %al,0x2f(%ecx)
40a92a:	50                   	push   %eax
40a92b:	00 41 4d             	add    %al,0x4d(%ecx)
40a92e:	50                   	push   %eax
40a92f:	4d                   	dec    %ebp
40a930:	00 00                	add    %al,(%eax)
40a932:	00 00                	add    %al,(%eax)
40a934:	41                   	inc    %ecx
40a935:	41                   	inc    %ecx
40a936:	41                   	inc    %ecx
40a937:	41                   	inc    %ecx
40a938:	00 00                	add    %al,(%eax)
40a93a:	00 00                	add    %al,(%eax)
40a93c:	41                   	inc    %ecx
40a93d:	41                   	inc    %ecx
40a93e:	41                   	inc    %ecx
40a93f:	00 20                	add    %ah,(%eax)
40a941:	00 00                	add    %al,(%eax)
40a943:	00 55 8b             	add    %dl,-0x75(%ebp)
40a946:	ec                   	in     (%dx),%al
40a947:	81 c4 f8 fe ff ff    	add    $0xfffffef8,%esp
40a94d:	53                   	push   %ebx
40a94e:	56                   	push   %esi
40a94f:	8b da                	mov    %edx,%ebx
40a951:	8b f0                	mov    %eax,%esi
40a953:	33 c0                	xor    %eax,%eax
40a955:	89 85 fc fe ff ff    	mov    %eax,-0x104(%ebp)
40a95b:	33 c0                	xor    %eax,%eax
40a95d:	89 85 f8 fe ff ff    	mov    %eax,-0x108(%ebp)
40a963:	85 db                	test   %ebx,%ebx
40a965:	74 0b                	je     0x40a972
40a967:	55                   	push   %ebp
40a968:	8b c3                	mov    %ebx,%eax
40a96a:	e8 21 f8 ff ff       	call   0x40a190
40a96f:	59                   	pop    %ecx
40a970:	eb 0c                	jmp    0x40a97e
40a972:	55                   	push   %ebp
40a973:	b8 9c a9 40 00       	mov    $0x40a99c,%eax
40a978:	e8 13 f8 ff ff       	call   0x40a190
40a97d:	59                   	pop    %ecx
40a97e:	8d 95 00 ff ff ff    	lea    -0x100(%ebp),%edx
40a984:	8b c6                	mov    %esi,%eax
40a986:	8b 8d fc fe ff ff    	mov    -0x104(%ebp),%ecx
40a98c:	e8 af 97 ff ff       	call   0x404140
40a991:	5e                   	pop    %esi
40a992:	5b                   	pop    %ebx
40a993:	8b e5                	mov    %ebp,%esp
40a995:	5d                   	pop    %ebp
40a996:	c2 08 00             	ret    $0x8
40a999:	00 00                	add    %al,(%eax)
40a99b:	00 43 00             	add    %al,0x0(%ebx)
40a99e:	00 00                	add    %al,(%eax)
40a9a0:	55                   	push   %ebp
40a9a1:	8b ec                	mov    %esp,%ebp
40a9a3:	ff 75 0c             	push   0xc(%ebp)
40a9a6:	ff 75 08             	push   0x8(%ebp)
40a9a9:	8b 15 8c 56 47 00    	mov    0x47568c,%edx
40a9af:	e8 90 ff ff ff       	call   0x40a944
40a9b4:	5d                   	pop    %ebp
40a9b5:	c2 08 00             	ret    $0x8
40a9b8:	55                   	push   %ebp
40a9b9:	8b ec                	mov    %esp,%ebp
40a9bb:	ff 75 0c             	push   0xc(%ebp)
40a9be:	ff 75 08             	push   0x8(%ebp)
40a9c1:	33 d2                	xor    %edx,%edx
40a9c3:	e8 7c ff ff ff       	call   0x40a944
40a9c8:	5d                   	pop    %ebp
40a9c9:	c2 08 00             	ret    $0x8
40a9cc:	53                   	push   %ebx
40a9cd:	56                   	push   %esi
40a9ce:	57                   	push   %edi
40a9cf:	8b fa                	mov    %edx,%edi
40a9d1:	8b f0                	mov    %eax,%esi
40a9d3:	8b 1f                	mov    (%edi),%ebx
40a9d5:	eb 01                	jmp    0x40a9d8
40a9d7:	43                   	inc    %ebx
40a9d8:	8b c6                	mov    %esi,%eax
40a9da:	e8 31 99 ff ff       	call   0x404310
40a9df:	3b d8                	cmp    %eax,%ebx
40a9e1:	7f 07                	jg     0x40a9ea
40a9e3:	80 7c 1e ff 20       	cmpb   $0x20,-0x1(%esi,%ebx,1)
40a9e8:	74 ed                	je     0x40a9d7
40a9ea:	89 1f                	mov    %ebx,(%edi)
40a9ec:	5f                   	pop    %edi
40a9ed:	5e                   	pop    %esi
40a9ee:	5b                   	pop    %ebx
40a9ef:	c3                   	ret
40a9f0:	55                   	push   %ebp
40a9f1:	8b ec                	mov    %esp,%ebp
40a9f3:	83 c4 f4             	add    $0xfffffff4,%esp
40a9f6:	53                   	push   %ebx
40a9f7:	56                   	push   %esi
40a9f8:	57                   	push   %edi
40a9f9:	89 4d f8             	mov    %ecx,-0x8(%ebp)
40a9fc:	89 55 fc             	mov    %edx,-0x4(%ebp)
40a9ff:	8b f8                	mov    %eax,%edi
40aa01:	c6 45 f7 00          	movb   $0x0,-0x9(%ebp)
40aa05:	8b 45 08             	mov    0x8(%ebp),%eax
40aa08:	c6 00 00             	movb   $0x0,(%eax)
40aa0b:	8b 55 fc             	mov    -0x4(%ebp),%edx
40aa0e:	8b c7                	mov    %edi,%eax
40aa10:	e8 b7 ff ff ff       	call   0x40a9cc
40aa15:	8b 5d fc             	mov    -0x4(%ebp),%ebx
40aa18:	8b 1b                	mov    (%ebx),%ebx
40aa1a:	33 f6                	xor    %esi,%esi
40aa1c:	eb 17                	jmp    0x40aa35
40aa1e:	8b c6                	mov    %esi,%eax
40aa20:	03 c0                	add    %eax,%eax
40aa22:	8d 04 80             	lea    (%eax,%eax,4),%eax
40aa25:	33 d2                	xor    %edx,%edx
40aa27:	8a 54 1f ff          	mov    -0x1(%edi,%ebx,1),%dl
40aa2b:	66 83 ea 30          	sub    $0x30,%dx
40aa2f:	66 03 c2             	add    %dx,%ax
40aa32:	8b f0                	mov    %eax,%esi
40aa34:	43                   	inc    %ebx
40aa35:	8b c7                	mov    %edi,%eax
40aa37:	e8 d4 98 ff ff       	call   0x404310
40aa3c:	3b d8                	cmp    %eax,%ebx
40aa3e:	7f 11                	jg     0x40aa51
40aa40:	8a 44 1f ff          	mov    -0x1(%edi,%ebx,1),%al
40aa44:	04 d0                	add    $0xd0,%al
40aa46:	2c 0a                	sub    $0xa,%al
40aa48:	73 07                	jae    0x40aa51
40aa4a:	66 81 fe e8 03       	cmp    $0x3e8,%si
40aa4f:	72 cd                	jb     0x40aa1e
40aa51:	8b 45 fc             	mov    -0x4(%ebp),%eax
40aa54:	3b 18                	cmp    (%eax),%ebx
40aa56:	7e 1d                	jle    0x40aa75
40aa58:	8b c3                	mov    %ebx,%eax
40aa5a:	8b 55 fc             	mov    -0x4(%ebp),%edx
40aa5d:	8b 12                	mov    (%edx),%edx
40aa5f:	2a c2                	sub    %dl,%al
40aa61:	8b 55 08             	mov    0x8(%ebp),%edx
40aa64:	88 02                	mov    %al,(%edx)
40aa66:	8b 45 fc             	mov    -0x4(%ebp),%eax
40aa69:	89 18                	mov    %ebx,(%eax)
40aa6b:	8b 45 f8             	mov    -0x8(%ebp),%eax
40aa6e:	66 89 30             	mov    %si,(%eax)
40aa71:	c6 45 f7 01          	movb   $0x1,-0x9(%ebp)
40aa75:	8a 45 f7             	mov    -0x9(%ebp),%al
40aa78:	5f                   	pop    %edi
40aa79:	5e                   	pop    %esi
40aa7a:	5b                   	pop    %ebx
40aa7b:	8b e5                	mov    %ebp,%esp
40aa7d:	5d                   	pop    %ebp
40aa7e:	c2 04 00             	ret    $0x4
40aa81:	8d 40 00             	lea    0x0(%eax),%eax
40aa84:	55                   	push   %ebp
40aa85:	8b ec                	mov    %esp,%ebp
40aa87:	83 c4 f8             	add    $0xfffffff8,%esp
40aa8a:	53                   	push   %ebx
40aa8b:	56                   	push   %esi
40aa8c:	57                   	push   %edi
40aa8d:	33 db                	xor    %ebx,%ebx
40aa8f:	89 5d f8             	mov    %ebx,-0x8(%ebp)
40aa92:	8b f9                	mov    %ecx,%edi
40aa94:	8b f2                	mov    %edx,%esi
40aa96:	89 45 fc             	mov    %eax,-0x4(%ebp)
40aa99:	33 c0                	xor    %eax,%eax
40aa9b:	55                   	push   %ebp
40aa9c:	68 fd aa 40 00       	push   $0x40aafd
40aaa1:	64 ff 30             	push   %fs:(%eax)
40aaa4:	64 89 20             	mov    %esp,%fs:(%eax)
40aaa7:	33 db                	xor    %ebx,%ebx
40aaa9:	85 ff                	test   %edi,%edi
40aaab:	74 3a                	je     0x40aae7
40aaad:	8b d6                	mov    %esi,%edx