40d68b:	47                   	inc    %edi
40d68c:	8b 5d 0c             	mov    0xc(%ebp),%ebx
40d68f:	33 c0                	xor    %eax,%eax
40d691:	66 89 02             	mov    %ax,(%edx)
40d694:	85 db                	test   %ebx,%ebx
40d696:	74 2f                	je     0x40d6c7
40d698:	66 89 03             	mov    %ax,(%ebx)
40d69b:	85 f6                	test   %esi,%esi
40d69d:	74 28                	je     0x40d6c7
40d69f:	68 00 10 00 00       	push   $0x1000
40d6a4:	8d 85 00 e0 ff ff    	lea    -0x2000(%ebp),%eax
40d6aa:	50                   	push   %eax
40d6ab:	56                   	push   %esi
40d6ac:	ff 15 9c a0 42 00    	call   *0x42a09c
40d6b2:	ff 75 14             	push   0x14(%ebp)
40d6b5:	8d 85 00 e0 ff ff    	lea    -0x2000(%ebp),%eax
40d6bb:	50                   	push   %eax
40d6bc:	53                   	push   %ebx
40d6bd:	e8 5d 32 00 00       	call   0x41091f
40d6c2:	33 c0                	xor    %eax,%eax
40d6c4:	66 89 06             	mov    %ax,(%esi)
40d6c7:	8b c7                	mov    %edi,%eax
40d6c9:	5e                   	pop    %esi
40d6ca:	eb 02                	jmp    0x40d6ce
40d6cc:	33 c0                	xor    %eax,%eax
40d6ce:	5f                   	pop    %edi
40d6cf:	5b                   	pop    %ebx
40d6d0:	c9                   	leave
40d6d1:	c2 10 00             	ret    $0x10
40d6d4:	55                   	push   %ebp
40d6d5:	8b ec                	mov    %esp,%ebp
40d6d7:	83 ec 1c             	sub    $0x1c,%esp
40d6da:	56                   	push   %esi
40d6db:	8b 35 a0 a0 42 00    	mov    0x42a0a0,%esi
40d6e1:	57                   	push   %edi
40d6e2:	6a 0a                	push   $0xa
40d6e4:	ff 75 08             	push   0x8(%ebp)
40d6e7:	ff d6                	call   *%esi
40d6e9:	bf 02 01 00 00       	mov    $0x102,%edi
40d6ee:	eb 19                	jmp    0x40d709
40d6f0:	6a 01                	push   $0x1
40d6f2:	6a 00                	push   $0x0
40d6f4:	6a 00                	push   $0x0
40d6f6:	6a 00                	push   $0x0
40d6f8:	8d 45 e4             	lea    -0x1c(%ebp),%eax
40d6fb:	50                   	push   %eax
40d6fc:	ff 15 10 a3 42 00    	call   *0x42a310
40d702:	6a 0a                	push   $0xa
40d704:	ff 75 08             	push   0x8(%ebp)
40d707:	ff d6                	call   *%esi
40d709:	3b c7                	cmp    %edi,%eax
40d70b:	74 e3                	je     0x40d6f0
40d70d:	5f                   	pop    %edi
40d70e:	5e                   	pop    %esi
40d70f:	c9                   	leave
40d710:	c2 04 00             	ret    $0x4
40d713:	55                   	push   %ebp
40d714:	8b ec                	mov    %esp,%ebp
40d716:	b8 20 10 00 00       	mov    $0x1020,%eax
40d71b:	e8 b0 cd 00 00       	call   0x41a4d0
40d720:	68 00 08 00 00       	push   $0x800
40d725:	8d 85 e0 ef ff ff    	lea    -0x1020(%ebp),%eax
40d72b:	50                   	push   %eax
40d72c:	e8 f2 c0 00 00       	call   0x419823
40d731:	80 3d 05 0d 44 00 00 	cmpb   $0x0,0x440d05
40d738:	75 6e                	jne    0x40d7a8
40d73a:	6a 06                	push   $0x6
40d73c:	ff 35 c0 f0 42 00    	push   0x42f0c0
40d742:	8d 85 e0 ef ff ff    	lea    -0x1020(%ebp),%eax
40d748:	50                   	push   %eax
40d749:	e8 58 cb ff ff       	call   0x40a2a6
40d74e:	50                   	push   %eax
40d74f:	e8 65 43 00 00       	call   0x411ab9
40d754:	85 c0                	test   %eax,%eax
40d756:	75 50                	jne    0x40d7a8
40d758:	68 28 a6 42 00       	push   $0x42a628
40d75d:	e8 ae c0 00 00       	call   0x419810
40d762:	8d 85 e0 ef ff ff    	lea    -0x1020(%ebp),%eax
40d768:	50                   	push   %eax
40d769:	e8 1d ca 00 00       	call   0x41a18b
40d76e:	33 c9                	xor    %ecx,%ecx
40d770:	6a 1e                	push   $0x1e
40d772:	66 89 8c 45 e2 ef ff 	mov    %cx,-0x101e(%ebp,%eax,2)
40d779:	ff
40d77a:	51                   	push   %ecx
40d77b:	8d 45 e0             	lea    -0x20(%ebp),%eax
40d77e:	50                   	push   %eax
40d77f:	e8 7c ca 00 00       	call   0x41a200
40d784:	83 c4 10             	add    $0x10,%esp
40d787:	6a 14                	push   $0x14
40d789:	58                   	pop    %eax
40d78a:	66 89 45 f0          	mov    %ax,-0x10(%ebp)
40d78e:	8d 85 e0 ef ff ff    	lea    -0x1020(%ebp),%eax
40d794:	89 45 e8             	mov    %eax,-0x18(%ebp)
40d797:	8d 45 e0             	lea    -0x20(%ebp),%eax
40d79a:	50                   	push   %eax
40d79b:	c7 45 e4 03 00 00 00 	movl   $0x3,-0x1c(%ebp)
40d7a2:	ff 15 6c a2 42 00    	call   *0x42a26c
40d7a8:	c9                   	leave
40d7a9:	c3                   	ret
40d7aa:	55                   	push   %ebp
40d7ab:	8b ec                	mov    %esp,%ebp
40d7ad:	b8 04 20 00 00       	mov    $0x2004,%eax
40d7b2:	e8 19 cd 00 00       	call   0x41a4d0
40d7b7:	53                   	push   %ebx
40d7b8:	56                   	push   %esi
40d7b9:	68 00 00 02 00       	push   $0x20000
40d7be:	e8 9b f1 00 00       	call   0x41c95e
40d7c3:	8b f0                	mov    %eax,%esi
40d7c5:	59                   	pop    %ecx
40d7c6:	85 f6                	test   %esi,%esi
40d7c8:	75 0a                	jne    0x40d7d4
40d7ca:	b9 74 2a 43 00       	mov    $0x432a74,%ecx
40d7cf:	e8 34 8d ff ff       	call   0x406508
40d7d4:	33 c0                	xor    %eax,%eax
40d7d6:	66 89 06             	mov    %ax,(%esi)
40d7d9:	33 db                	xor    %ebx,%ebx
40d7db:	eb 73                	jmp    0x40d850
40d7dd:	66 83 3e 00          	cmpw   $0x0,(%esi)
40d7e1:	75 0a                	jne    0x40d7ed
40d7e3:	66 83 bd fc df ff ff 	cmpw   $0x7b,-0x2004(%ebp)
40d7ea:	7b
40d7eb:	74 63                	je     0x40d850
40d7ed:	66 83 bd fc df ff ff 	cmpw   $0x7d,-0x2004(%ebp)
40d7f4:	7d
40d7f5:	74 7d                	je     0x40d874
40d7f7:	8d 85 fc df ff ff    	lea    -0x2004(%ebp),%eax
40d7fd:	50                   	push   %eax
40d7fe:	e8 88 c9 00 00       	call   0x41a18b
40d803:	03 c3                	add    %ebx,%eax
40d805:	59                   	pop    %ecx
40d806:	3d fb ff 00 00       	cmp    $0xfffb,%eax
40d80b:	77 67                	ja     0x40d874
40d80d:	8d 85 fc df ff ff    	lea    -0x2004(%ebp),%eax
40d813:	50                   	push   %eax
40d814:	56                   	push   %esi
40d815:	e8 8b c9 00 00       	call   0x41a1a5
40d81a:	56                   	push   %esi
40d81b:	e8 6b c9 00 00       	call   0x41a18b
40d820:	8b d8                	mov    %eax,%ebx
40d822:	83 c4 0c             	add    $0xc,%esp
40d825:	85 db                	test   %ebx,%ebx
40d827:	76 11                	jbe    0x40d83a
40d829:	8d 44 5e fe          	lea    -0x2(%esi,%ebx,2),%eax
40d82d:	66 83 38 20          	cmpw   $0x20,(%eax)
40d831:	75 07                	jne    0x40d83a
40d833:	4b                   	dec    %ebx
40d834:	48                   	dec    %eax
40d835:	48                   	dec    %eax
40d836:	85 db                	test   %ebx,%ebx
40d838:	77 f3                	ja     0x40d82d
40d83a:	80 7d ff 00          	cmpb   $0x0,-0x1(%ebp)
40d83e:	75 10                	jne    0x40d850
40d840:	8d 04 5e             	lea    (%esi,%ebx,2),%eax
40d843:	68 d8 a7 42 00       	push   $0x42a7d8
40d848:	50                   	push   %eax
40d849:	e8 85 c9 00 00       	call   0x41a1d3
40d84e:	59                   	pop    %ecx
40d84f:	59                   	pop    %ecx
40d850:	68 00 10 00 00       	push   $0x1000
40d855:	8d 45 ff             	lea    -0x1(%ebp),%eax
40d858:	50                   	push   %eax
40d859:	6a 00                	push   $0x0
40d85b:	ff 37                	push   (%edi)
40d85d:	33 c9                	xor    %ecx,%ecx
40d85f:	8d 95 fc df ff ff    	lea    -0x2004(%ebp),%edx
40d865:	e8 94 fd ff ff       	call   0x40d5fe
40d86a:	89 07                	mov    %eax,(%edi)
40d86c:	85 c0                	test   %eax,%eax
40d86e:	0f 85 69 ff ff ff    	jne    0x40d7dd
40d874:	8b c6                	mov    %esi,%eax
40d876:	5e                   	pop    %esi
40d877:	5b                   	pop    %ebx
40d878:	c9                   	leave
40d879:	c3                   	ret
40d87a:	53                   	push   %ebx
40d87b:	6a 01                	push   $0x1
40d87d:	33 db                	xor    %ebx,%ebx
40d87f:	56                   	push   %esi
40d880:	c6 05 f1 0c 44 00 01 	movb   $0x1,0x440cf1
40d887:	89 1d f4 0c 44 00    	mov    %ebx,0x440cf4
40d88d:	c6 05 f0 0c 44 00 01 	movb   $0x1,0x440cf0
40d894:	ff 15 8c a2 42 00    	call   *0x42a28c
40d89a:	53                   	push   %ebx
40d89b:	6a 02                	push   $0x2
40d89d:	56                   	push   %esi
40d89e:	e8 58 89 ff ff       	call   0x4061fb
40d8a3:	39 1d 14 0d 44 00    	cmp    %ebx,0x440d14
40d8a9:	75 08                	jne    0x40d8b3
40d8ab:	38 1d 04 0d 44 00    	cmp    %bl,0x440d04
40d8b1:	74 08                	je     0x40d8bb
40d8b3:	39 1d f8 0c 44 00    	cmp    %ebx,0x440cf8
40d8b9:	75 0f                	jne    0x40d8ca
40d8bb:	53                   	push   %ebx
40d8bc:	6a 01                	push   $0x1
40d8be:	68 11 01 00 00       	push   $0x111
40d8c3:	56                   	push   %esi
40d8c4:	ff 15 04 a3 42 00    	call   *0x42a304
40d8ca:	5b                   	pop    %ebx
40d8cb:	c3                   	ret
40d8cc:	ff 74 24 04          	push   0x4(%esp)
40d8d0:	56                   	push   %esi
40d8d1:	e8 fd c8 00 00       	call   0x41a1d3
40d8d6:	59                   	pop    %ecx
40d8d7:	59                   	pop    %ecx
40d8d8:	33 c9                	xor    %ecx,%ecx
40d8da:	66 39 0e             	cmp    %cx,(%esi)
40d8dd:	74 27                	je     0x40d906
40d8df:	8b c6                	mov    %esi,%eax
40d8e1:	0f b7 10             	movzwl (%eax),%edx
40d8e4:	66 83 fa 3a          	cmp    $0x3a,%dx
40d8e8:	74 0c                	je     0x40d8f6
40d8ea:	66 83 fa 5c          	cmp    $0x5c,%dx
40d8ee:	74 06                	je     0x40d8f6
40d8f0:	66 83 fa 2f          	cmp    $0x2f,%dx
40d8f4:	75 06                	jne    0x40d8fc
40d8f6:	6a 25                	push   $0x25
40d8f8:	5a                   	pop    %edx
40d8f9:	66 89 10             	mov    %dx,(%eax)
40d8fc:	41                   	inc    %ecx
40d8fd:	8d 04 4e             	lea    (%esi,%ecx,2),%eax
40d900:	66 83 38 00          	cmpw   $0x0,(%eax)
40d904:	75 db                	jne    0x40d8e1
40d906:	c2 04 00             	ret    $0x4
40d909:	55                   	push   %ebp
40d90a:	8b ec                	mov    %esp,%ebp
40d90c:	b8 08 10 00 00       	mov    $0x1008,%eax
40d911:	e8 ba cb 00 00       	call   0x41a4d0
40d916:	53                   	push   %ebx
40d917:	33 db                	xor    %ebx,%ebx
40d919:	38 1d 38 0d 44 00    	cmp    %bl,0x440d38
40d91f:	74 6d                	je     0x40d98e
40d921:	66 39 1d d8 7c 43 00 	cmp    %bx,0x437cd8
40d928:	74 64                	je     0x40d98e
40d92a:	56                   	push   %esi
40d92b:	68 d8 7c 43 00       	push   $0x437cd8
40d930:	8d b5 f8 ef ff ff    	lea    -0x1008(%ebp),%esi
40d936:	e8 91 ff ff ff       	call   0x40d8cc
40d93b:	8d 45 f8             	lea    -0x8(%ebp),%eax
40d93e:	50                   	push   %eax
40d93f:	8d 45 fc             	lea    -0x4(%ebp),%eax
40d942:	50                   	push   %eax
40d943:	53                   	push   %ebx
40d944:	68 06 00 02 00       	push   $0x20006
40d949:	53                   	push   %ebx
40d94a:	53                   	push   %ebx
40d94b:	53                   	push   %ebx
40d94c:	68 30 a8 42 00       	push   $0x42a830
40d951:	68 01 00 00 80       	push   $0x80000001
40d956:	ff 15 08 a0 42 00    	call   *0x42a008
40d95c:	5e                   	pop    %esi
40d95d:	85 c0                	test   %eax,%eax
40d95f:	75 2d                	jne    0x40d98e
40d961:	ff 75 08             	push   0x8(%ebp)
40d964:	e8 22 c8 00 00       	call   0x41a18b
40d969:	59                   	pop    %ecx
40d96a:	8d 44 00 02          	lea    0x2(%eax,%eax,1),%eax
40d96e:	50                   	push   %eax
40d96f:	ff 75 08             	push   0x8(%ebp)
40d972:	8d 85 f8 ef ff ff    	lea    -0x1008(%ebp),%eax
40d978:	6a 01                	push   $0x1
40d97a:	53                   	push   %ebx
40d97b:	50                   	push   %eax
40d97c:	ff 75 fc             	push   -0x4(%ebp)
40d97f:	ff 15 0c a0 42 00    	call   *0x42a00c
40d985:	ff 75 fc             	push   -0x4(%ebp)
40d988:	ff 15 10 a0 42 00    	call   *0x42a010
40d98e:	5b                   	pop    %ebx
40d98f:	c9                   	leave
40d990:	c2 04 00             	ret    $0x4
40d993:	55                   	push   %ebp
40d994:	8b ec                	mov    %esp,%ebp
40d996:	b8 0c 20 00 00       	mov    $0x200c,%eax
40d99b:	e8 30 cb 00 00       	call   0x41a4d0
40d9a0:	80 3d 38 0d 44 00 00 	cmpb   $0x0,0x440d38
40d9a7:	0f 84 8d 00 00 00    	je     0x40da3a
40d9ad:	56                   	push   %esi
40d9ae:	ff 75 08             	push   0x8(%ebp)
40d9b1:	8d b5 f4 df ff ff    	lea    -0x200c(%ebp),%esi
40d9b7:	e8 10 ff ff ff       	call   0x40d8cc
40d9bc:	8d 45 f8             	lea    -0x8(%ebp),%eax
40d9bf:	50                   	push   %eax
40d9c0:	6a 01                	push   $0x1
40d9c2:	6a 00                	push   $0x0
40d9c4:	68 30 a8 42 00       	push   $0x42a830
40d9c9:	68 01 00 00 80       	push   $0x80000001
40d9ce:	ff 15 00 a0 42 00    	call   *0x42a000
40d9d4:	5e                   	pop    %esi
40d9d5:	85 c0                	test   %eax,%eax
40d9d7:	75 61                	jne    0x40da3a
40d9d9:	8d 45 fc             	lea    -0x4(%ebp),%eax
40d9dc:	50                   	push   %eax
40d9dd:	8d 85 f4 ef ff ff    	lea    -0x100c(%ebp),%eax
40d9e3:	50                   	push   %eax
40d9e4:	8d 45 f4             	lea    -0xc(%ebp),%eax
40d9e7:	50                   	push   %eax
40d9e8:	6a 00                	push   $0x0
40d9ea:	8d 85 f4 df ff ff    	lea    -0x200c(%ebp),%eax
40d9f0:	50                   	push   %eax
40d9f1:	ff 75 f8             	push   -0x8(%ebp)
40d9f4:	c7 45 fc 00 10 00 00 	movl   $0x1000,-0x4(%ebp)
40d9fb:	ff 15 04 a0 42 00    	call   *0x42a004
40da01:	85 c0                	test   %eax,%eax
40da03:	75 2c                	jne    0x40da31
40da05:	d1 6d fc             	shrl   $1,-0x4(%ebp)
40da08:	b8 ff 07 00 00       	mov    $0x7ff,%eax
40da0d:	39 45 fc             	cmp    %eax,-0x4(%ebp)
40da10:	73 03                	jae    0x40da15
40da12:	8b 45 fc             	mov    -0x4(%ebp),%eax
40da15:	ff 75 0c             	push   0xc(%ebp)
40da18:	33 c9                	xor    %ecx,%ecx
40da1a:	66 89 8c 45 f4 ef ff 	mov    %cx,-0x100c(%ebp,%eax,2)
40da21:	ff
40da22:	8d 85 f4 ef ff ff    	lea    -0x100c(%ebp),%eax
40da28:	50                   	push   %eax
40da29:	ff 75 08             	push   0x8(%ebp)
40da2c:	e8 ee 2e 00 00       	call   0x41091f
40da31:	ff 75 f8             	push   -0x8(%ebp)
40da34:	ff 15 10 a0 42 00    	call   *0x42a010
40da3a:	c9                   	leave
40da3b:	c2 08 00             	ret    $0x8
40da3e:	55                   	push   %ebp
40da3f:	8b ec                	mov    %esp,%ebp
40da41:	b8 1c 10 00 00       	mov    $0x101c,%eax
40da46:	e8 85 ca 00 00       	call   0x41a4d0
40da4b:	e8 de f6 ff ff       	call   0x40d12e
40da50:	84 c0                	test   %al,%al
40da52:	0f 84 d9 00 00 00    	je     0x40db31
40da58:	57                   	push   %edi
40da59:	6a 05                	push   $0x5
40da5b:	ff 75 08             	push   0x8(%ebp)
40da5e:	ff 15 3c a3 42 00    	call   *0x42a33c
40da64:	83 65 08 00          	andl   $0x0,0x8(%ebp)
40da68:	8b f8                	mov    %eax,%edi
40da6a:	89 7d fc             	mov    %edi,-0x4(%ebp)
40da6d:	85 ff                	test   %edi,%edi
40da6f:	0f 84 bb 00 00 00    	je     0x40db30
40da75:	53                   	push   %ebx
40da76:	8b 1d 04 a3 42 00    	mov    0x42a304,%ebx
40da7c:	56                   	push   %esi
40da7d:	81 7d 08 00 02 00 00 	cmpl   $0x200,0x8(%ebp)
40da84:	0f 8d a4 00 00 00    	jge    0x40db2e
40da8a:	68 00 08 00 00       	push   $0x800
40da8f:	8d 85 e4 ef ff ff    	lea    -0x101c(%ebp),%eax
40da95:	50                   	push   %eax
40da96:	57                   	push   %edi
40da97:	ff 15 ec a2 42 00    	call   *0x42a2ec
40da9d:	68 58 a8 42 00       	push   $0x42a858
40daa2:	8d 85 e4 ef ff ff    	lea    -0x101c(%ebp),%eax
40daa8:	50                   	push   %eax