40e701:	c3                   	ret
40e702:	eb ca                	jmp    0x40e6ce
40e704:	8b 75 08             	mov    0x8(%ebp),%esi
40e707:	e8 6e f1 ff ff       	call   0x40d87a
40e70c:	b8 ce e6 40 00       	mov    $0x40e6ce,%eax
40e711:	c3                   	ret
40e712:	b8 f1 93 42 00       	mov    $0x4293f1,%eax
40e717:	e8 9c b7 00 00       	call   0x419eb8
40e71c:	b8 84 bc 01 00       	mov    $0x1bc84,%eax
40e721:	e8 aa bd 00 00       	call   0x41a4d0
40e726:	83 7d 0c 00          	cmpl   $0x0,0xc(%ebp)
40e72a:	0f 84 bf 0b 00 00    	je     0x40f2ef
40e730:	68 00 10 00 00       	push   $0x1000
40e735:	8d 45 0f             	lea    0xf(%ebp),%eax
40e738:	50                   	push   %eax
40e739:	8d 85 c0 bb ff ff    	lea    -0x4440(%ebp),%eax
40e73f:	50                   	push   %eax
40e740:	ff 75 0c             	push   0xc(%ebp)
40e743:	8d 4d ef             	lea    -0x11(%ebp),%ecx
40e746:	8d 95 70 13 ff ff    	lea    -0xec90(%ebp),%edx
40e74c:	e8 ad ee ff ff       	call   0x40d5fe
40e751:	89 45 0c             	mov    %eax,0xc(%ebp)
40e754:	85 c0                	test   %eax,%eax
40e756:	0f 84 93 0b 00 00    	je     0x40f2ef
40e75c:	53                   	push   %ebx
40e75d:	56                   	push   %esi
40e75e:	57                   	push   %edi
40e75f:	bb 00 08 00 00       	mov    $0x800,%ebx
40e764:	8b 3d 5c a0 42 00    	mov    0x42a05c,%edi
40e76a:	8d 8d 70 43 fe ff    	lea    -0x1bc90(%ebp),%ecx
40e770:	be d8 7c 43 00       	mov    $0x437cd8,%esi
40e775:	8d 85 c0 bb ff ff    	lea    -0x4440(%ebp),%eax
40e77b:	89 4d f0             	mov    %ecx,-0x10(%ebp)
40e77e:	c7 45 e8 06 00 00 00 	movl   $0x6,-0x18(%ebp)
40e785:	ff 75 f0             	push   -0x10(%ebp)
40e788:	50                   	push   %eax
40e789:	e8 a7 f3 ff ff       	call   0x40db35
40e78e:	81 45 f0 00 20 00 00 	addl   $0x2000,-0x10(%ebp)
40e795:	ff 4d e8             	decl   -0x18(%ebp)
40e798:	75 eb                	jne    0x40e785
40e79a:	83 65 f0 00          	andl   $0x0,-0x10(%ebp)
40e79e:	8b 45 f0             	mov    -0x10(%ebp),%eax
40e7a1:	ff 34 85 f8 f0 42 00 	push   0x42f0f8(,%eax,4)
40e7a8:	8d 85 70 13 ff ff    	lea    -0xec90(%ebp),%eax
40e7ae:	50                   	push   %eax
40e7af:	e8 e4 32 00 00       	call   0x411a98
40e7b4:	85 c0                	test   %eax,%eax
40e7b6:	74 0e                	je     0x40e7c6
40e7b8:	ff 45 f0             	incl   -0x10(%ebp)
40e7bb:	83 7d f0 0e          	cmpl   $0xe,-0x10(%ebp)
40e7bf:	72 dd                	jb     0x40e79e
40e7c1:	e9 fa 0a 00 00       	jmp    0x40f2c0
40e7c6:	83 7d f0 0d          	cmpl   $0xd,-0x10(%ebp)
40e7ca:	0f 87 f0 0a 00 00    	ja     0x40f2c0
40e7d0:	8b 45 f0             	mov    -0x10(%ebp),%eax
40e7d3:	ff 24 85 fe f2 40 00 	jmp    *0x40f2fe(,%eax,4)
40e7da:	83 7d 10 02          	cmpl   $0x2,0x10(%ebp)
40e7de:	0f 85 dc 0a 00 00    	jne    0x40f2c0
40e7e4:	53                   	push   %ebx
40e7e5:	8d 85 70 73 ff ff    	lea    -0x8c90(%ebp),%eax
40e7eb:	50                   	push   %eax
40e7ec:	e8 32 b0 00 00       	call   0x419823
40e7f1:	53                   	push   %ebx
40e7f2:	8d 85 70 03 ff ff    	lea    -0xfc90(%ebp),%eax
40e7f8:	50                   	push   %eax
40e7f9:	8d 85 c0 bb ff ff    	lea    -0x4440(%ebp),%eax
40e7ff:	50                   	push   %eax
40e800:	8d 85 70 73 ff ff    	lea    -0x8c90(%ebp),%eax
40e806:	50                   	push   %eax
40e807:	e8 20 b8 ff ff       	call   0x40a02c
40e80c:	8d 8d 70 83 ff ff    	lea    -0x7c90(%ebp),%ecx
40e812:	e8 9a ab ff ff       	call   0x4093b1
40e817:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
40e81b:	8d 85 70 03 ff ff    	lea    -0xfc90(%ebp),%eax
40e821:	50                   	push   %eax
40e822:	8d 8d 70 83 ff ff    	lea    -0x7c90(%ebp),%ecx
40e828:	e8 ad ab ff ff       	call   0x4093da
40e82d:	8d 8d 78 a3 ff ff    	lea    -0x5c88(%ebp),%ecx
40e833:	e8 ae 7f ff ff       	call   0x4067e6
40e838:	6a 00                	push   $0x0
40e83a:	8d 85 78 a3 ff ff    	lea    -0x5c88(%ebp),%eax
40e840:	50                   	push   %eax
40e841:	8d 8d 70 83 ff ff    	lea    -0x7c90(%ebp),%ecx
40e847:	e8 40 ad ff ff       	call   0x40958c
40e84c:	84 c0                	test   %al,%al
40e84e:	0f 84 59 01 00 00    	je     0x40e9ad
40e854:	be 78 a9 42 00       	mov    $0x42a978,%esi
40e859:	6a 00                	push   $0x0
40e85b:	8d 85 78 a3 ff ff    	lea    -0x5c88(%ebp),%eax
40e861:	50                   	push   %eax
40e862:	ff 15 60 a0 42 00    	call   *0x42a060
40e868:	80 bd 84 b3 ff ff 00 	cmpb   $0x0,-0x4c7c(%ebp)
40e86f:	0f 84 a2 00 00 00    	je     0x40e917
40e875:	53                   	push   %ebx
40e876:	8d 85 c0 ef ff ff    	lea    -0x1040(%ebp),%eax
40e87c:	50                   	push   %eax
40e87d:	8d 85 70 73 ff ff    	lea    -0x8c90(%ebp),%eax
40e883:	50                   	push   %eax
40e884:	e8 42 be ff ff       	call   0x40a6cb
40e889:	53                   	push   %ebx
40e88a:	8d 85 c0 ef ff ff    	lea    -0x1040(%ebp),%eax
40e890:	50                   	push   %eax
40e891:	e8 66 b7 ff ff       	call   0x409ffc
40e896:	8d 85 70 73 ff ff    	lea    -0x8c90(%ebp),%eax
40e89c:	50                   	push   %eax
40e89d:	e8 e9 b8 00 00       	call   0x41a18b
40e8a2:	59                   	pop    %ecx
40e8a3:	89 45 e8             	mov    %eax,-0x18(%ebp)
40e8a6:	83 f8 04             	cmp    $0x4,%eax
40e8a9:	72 12                	jb     0x40e8bd
40e8ab:	8d 85 c0 ef ff ff    	lea    -0x1040(%ebp),%eax
40e8b1:	50                   	push   %eax
40e8b2:	e8 d4 b8 00 00       	call   0x41a18b
40e8b7:	59                   	pop    %ecx
40e8b8:	39 45 e8             	cmp    %eax,-0x18(%ebp)
40e8bb:	77 14                	ja     0x40e8d1
40e8bd:	8d 85 c0 bb ff ff    	lea    -0x4440(%ebp),%eax
40e8c3:	50                   	push   %eax
40e8c4:	e8 ed b6 ff ff       	call   0x409fb6
40e8c9:	84 c0                	test   %al,%al
40e8cb:	0f 85 dc 00 00 00    	jne    0x40e9ad
40e8d1:	8d 85 78 a3 ff ff    	lea    -0x5c88(%ebp),%eax
40e8d7:	50                   	push   %eax
40e8d8:	e8 ae b8 00 00       	call   0x41a18b
40e8dd:	33 c9                	xor    %ecx,%ecx
40e8df:	6a 1e                	push   $0x1e
40e8e1:	66 89 8c 45 7a a3 ff 	mov    %cx,-0x5c86(%ebp,%eax,2)
40e8e8:	ff
40e8e9:	51                   	push   %ecx
40e8ea:	8d 45 c0             	lea    -0x40(%ebp),%eax
40e8ed:	50                   	push   %eax
40e8ee:	e8 0d b9 00 00       	call   0x41a200
40e8f3:	83 c4 10             	add    $0x10,%esp
40e8f6:	6a 14                	push   $0x14
40e8f8:	58                   	pop    %eax
40e8f9:	66 89 45 d0          	mov    %ax,-0x30(%ebp)
40e8fd:	8d 85 78 a3 ff ff    	lea    -0x5c88(%ebp),%eax
40e903:	89 45 c8             	mov    %eax,-0x38(%ebp)
40e906:	8d 45 c0             	lea    -0x40(%ebp),%eax
40e909:	50                   	push   %eax
40e90a:	c7 45 c4 03 00 00 00 	movl   $0x3,-0x3c(%ebp)
40e911:	ff 15 6c a2 42 00    	call   *0x42a26c
40e917:	8d 85 78 a3 ff ff    	lea    -0x5c88(%ebp),%eax
40e91d:	50                   	push   %eax
40e91e:	ff d7                	call   *%edi
40e920:	83 f8 ff             	cmp    $0xffffffff,%eax
40e923:	74 6c                	je     0x40e991
40e925:	8d 85 78 a3 ff ff    	lea    -0x5c88(%ebp),%eax
40e92b:	50                   	push   %eax
40e92c:	ff 15 10 a2 42 00    	call   *0x42a210
40e932:	85 c0                	test   %eax,%eax
40e934:	75 5b                	jne    0x40e991
40e936:	21 45 f0             	and    %eax,-0x10(%ebp)
40e939:	50                   	push   %eax
40e93a:	eb 06                	jmp    0x40e942
40e93c:	ff 45 f0             	incl   -0x10(%ebp)
40e93f:	ff 75 f0             	push   -0x10(%ebp)
40e942:	8d 85 78 a3 ff ff    	lea    -0x5c88(%ebp),%eax
40e948:	50                   	push   %eax
40e949:	56                   	push   %esi
40e94a:	8d 85 c0 ef ff ff    	lea    -0x1040(%ebp),%eax
40e950:	53                   	push   %ebx
40e951:	50                   	push   %eax
40e952:	e8 8b ec ff ff       	call   0x40d5e2
40e957:	83 c4 14             	add    $0x14,%esp
40e95a:	8d 85 c0 ef ff ff    	lea    -0x1040(%ebp),%eax
40e960:	50                   	push   %eax
40e961:	ff d7                	call   *%edi
40e963:	83 f8 ff             	cmp    $0xffffffff,%eax
40e966:	75 d4                	jne    0x40e93c
40e968:	8d 85 c0 ef ff ff    	lea    -0x1040(%ebp),%eax
40e96e:	50                   	push   %eax
40e96f:	8d 85 78 a3 ff ff    	lea    -0x5c88(%ebp),%eax
40e975:	50                   	push   %eax
40e976:	ff 15 fc a1 42 00    	call   *0x42a1fc
40e97c:	85 c0                	test   %eax,%eax
40e97e:	74 11                	je     0x40e991
40e980:	6a 04                	push   $0x4
40e982:	6a 00                	push   $0x0
40e984:	8d 85 c0 ef ff ff    	lea    -0x1040(%ebp),%eax
40e98a:	50                   	push   %eax
40e98b:	ff 15 bc a0 42 00    	call   *0x42a0bc
40e991:	6a 00                	push   $0x0
40e993:	8d 85 78 a3 ff ff    	lea    -0x5c88(%ebp),%eax
40e999:	50                   	push   %eax
40e99a:	8d 8d 70 83 ff ff    	lea    -0x7c90(%ebp),%ecx
40e9a0:	e8 e7 ab ff ff       	call   0x40958c
40e9a5:	84 c0                	test   %al,%al
40e9a7:	0f 85 ac fe ff ff    	jne    0x40e859
40e9ad:	83 4d fc ff          	orl    $0xffffffff,-0x4(%ebp)
40e9b1:	8d 8d 70 83 ff ff    	lea    -0x7c90(%ebp),%ecx
40e9b7:	e8 0b aa ff ff       	call   0x4093c7
40e9bc:	e9 ff 08 00 00       	jmp    0x40f2c0
40e9c1:	83 7d 10 00          	cmpl   $0x0,0x10(%ebp)
40e9c5:	0f 85 f5 08 00 00    	jne    0x40f2c0
40e9cb:	a1 0c 0d 44 00       	mov    0x440d0c,%eax
40e9d0:	85 c0                	test   %eax,%eax
40e9d2:	0f 94 45 ee          	sete   -0x12(%ebp)
40e9d6:	80 7d ee 00          	cmpb   $0x0,-0x12(%ebp)
40e9da:	75 0d                	jne    0x40e9e9
40e9dc:	68 6c a9 42 00       	push   $0x42a96c
40e9e1:	50                   	push   %eax
40e9e2:	e8 be b7 00 00       	call   0x41a1a5
40e9e7:	59                   	pop    %ecx
40e9e8:	59                   	pop    %ecx
40e9e9:	80 7d ef 00          	cmpb   $0x0,-0x11(%ebp)
40e9ed:	74 08                	je     0x40e9f7
40e9ef:	8d bd c0 bb ff ff    	lea    -0x4440(%ebp),%edi
40e9f5:	eb 0a                	jmp    0x40ea01
40e9f7:	8d 7d 0c             	lea    0xc(%ebp),%edi
40e9fa:	e8 ab ed ff ff       	call   0x40d7aa
40e9ff:	8b f8                	mov    %eax,%edi
40ea01:	80 7d ee 00          	cmpb   $0x0,-0x12(%ebp)
40ea05:	74 04                	je     0x40ea0b
40ea07:	33 f6                	xor    %esi,%esi
40ea09:	eb 0e                	jmp    0x40ea19
40ea0b:	ff 35 0c 0d 44 00    	push   0x440d0c
40ea11:	e8 75 b7 00 00       	call   0x41a18b
40ea16:	59                   	pop    %ecx
40ea17:	8b f0                	mov    %eax,%esi
40ea19:	57                   	push   %edi
40ea1a:	e8 6c b7 00 00       	call   0x41a18b
40ea1f:	03 c6                	add    %esi,%eax
40ea21:	8d 44 00 0a          	lea    0xa(%eax,%eax,1),%eax
40ea25:	50                   	push   %eax
40ea26:	ff 35 0c 0d 44 00    	push   0x440d0c
40ea2c:	e8 3f b5 00 00       	call   0x419f70
40ea31:	83 c4 0c             	add    $0xc,%esp
40ea34:	80 7d ee 00          	cmpb   $0x0,-0x12(%ebp)
40ea38:	a3 0c 0d 44 00       	mov    %eax,0x440d0c
40ea3d:	74 05                	je     0x40ea44
40ea3f:	33 c9                	xor    %ecx,%ecx
40ea41:	66 89 08             	mov    %cx,(%eax)
40ea44:	57                   	push   %edi
40ea45:	50                   	push   %eax
40ea46:	e8 5a b7 00 00       	call   0x41a1a5
40ea4b:	80 7d ef 00          	cmpb   $0x0,-0x11(%ebp)
40ea4f:	59                   	pop    %ecx
40ea50:	59                   	pop    %ecx
40ea51:	0f 85 69 08 00 00    	jne    0x40f2c0
40ea57:	57                   	push   %edi
40ea58:	e8 85 b4 00 00       	call   0x419ee2
40ea5d:	59                   	pop    %ecx
40ea5e:	e9 5d 08 00 00       	jmp    0x40f2c0
40ea63:	83 7d 10 00          	cmpl   $0x0,0x10(%ebp)
40ea67:	0f 85 53 08 00 00    	jne    0x40f2c0
40ea6d:	8d 85 c0 bb ff ff    	lea    -0x4440(%ebp),%eax
40ea73:	50                   	push   %eax
40ea74:	ff 75 08             	push   0x8(%ebp)
40ea77:	ff 15 34 a3 42 00    	call   *0x42a334
40ea7d:	e9 3e 08 00 00       	jmp    0x40f2c0
40ea82:	83 7d 10 00          	cmpl   $0x0,0x10(%ebp)
40ea86:	0f 85 34 08 00 00    	jne    0x40f2c0
40ea8c:	66 83 3d 3a 0d 44 00 	cmpw   $0x0,0x440d3a
40ea93:	00
40ea94:	0f 85 26 08 00 00    	jne    0x40f2c0
40ea9a:	33 c0                	xor    %eax,%eax
40ea9c:	66 83 bd c0 bb ff ff 	cmpw   $0x22,-0x4440(%ebp)
40eaa3:	22
40eaa4:	8d bd c0 bb ff ff    	lea    -0x4440(%ebp),%edi
40eaaa:	89 7d e8             	mov    %edi,-0x18(%ebp)
40eaad:	66 89 85 c0 ef ff ff 	mov    %ax,-0x1040(%ebp)
40eab4:	75 09                	jne    0x40eabf
40eab6:	8d bd c2 bb ff ff    	lea    -0x443e(%ebp),%edi
40eabc:	89 7d e8             	mov    %edi,-0x18(%ebp)
40eabf:	57                   	push   %edi
40eac0:	e8 c6 b6 00 00       	call   0x41a18b
40eac5:	59                   	pop    %ecx
40eac6:	3b c3                	cmp    %ebx,%eax
40eac8:	0f 83 f2 07 00 00    	jae    0x40f2c0
40eace:	0f b7 07             	movzwl (%edi),%eax
40ead1:	66 83 f8 2e          	cmp    $0x2e,%ax
40ead5:	75 1a                	jne    0x40eaf1
40ead7:	66 83 7f 02 5c       	cmpw   $0x5c,0x2(%edi)
40eadc:	75 13                	jne    0x40eaf1
40eade:	8d 47 04             	lea    0x4(%edi),%eax
40eae1:	66 83 38 00          	cmpw   $0x0,(%eax)
40eae5:	0f 84 d5 07 00 00    	je     0x40f2c0
40eaeb:	50                   	push   %eax
40eaec:	e9 e6 00 00 00       	jmp    0x40ebd7
40eaf1:	66 83 f8 5c          	cmp    $0x5c,%ax
40eaf5:	0f 84 db 00 00 00    	je     0x40ebd6
40eafb:	66 85 c0             	test   %ax,%ax
40eafe:	74 0b                	je     0x40eb0b
40eb00:	66 83 7f 02 3a       	cmpw   $0x3a,0x2(%edi)
40eb05:	0f 84 cb 00 00 00    	je     0x40ebd6
40eb0b:	8d 45 e4             	lea    -0x1c(%ebp),%eax
40eb0e:	50                   	push   %eax
40eb0f:	6a 01                	push   $0x1
40eb11:	6a 00                	push   $0x0
40eb13:	68 18 a9 42 00       	push   $0x42a918
40eb18:	68 02 00 00 80       	push   $0x80000002
40eb1d:	ff 15 00 a0 42 00    	call   *0x42a000
40eb23:	85 c0                	test   %eax,%eax
40eb25:	75 49                	jne    0x40eb70
40eb27:	8d 45 f0             	lea    -0x10(%ebp),%eax
40eb2a:	50                   	push   %eax
40eb2b:	8d 85 c0 ef ff ff    	lea    -0x1040(%ebp),%eax
40eb31:	50                   	push   %eax
40eb32:	8d 45 e0             	lea    -0x20(%ebp),%eax
40eb35:	50                   	push   %eax
40eb36:	6a 00                	push   $0x0
40eb38:	68 f8 a8 42 00       	push   $0x42a8f8
40eb3d:	ff 75 e4             	push   -0x1c(%ebp)
40eb40:	c7 45 f0 00 10 00 00 	movl   $0x1000,-0x10(%ebp)
40eb47:	ff 15 04 a0 42 00    	call   *0x42a004
40eb4d:	ff 75 e4             	push   -0x1c(%ebp)
40eb50:	ff 15 10 a0 42 00    	call   *0x42a010
40eb56:	d1 6d f0             	shrl   $1,-0x10(%ebp)
40eb59:	b8 ff 07 00 00       	mov    $0x7ff,%eax
40eb5e:	39 45 f0             	cmp    %eax,-0x10(%ebp)
40eb61:	73 03                	jae    0x40eb66
40eb63:	8b 45 f0             	mov    -0x10(%ebp),%eax
40eb66:	33 c9                	xor    %ecx,%ecx
40eb68:	66 89 8c 45 c0 ef ff 	mov    %cx,-0x1040(%ebp,%eax,2)
40eb6f:	ff
40eb70:	66 83 bd c0 ef ff ff 	cmpw   $0x0,-0x1040(%ebp)
40eb77:	00
40eb78:	74 2b                	je     0x40eba5
40eb7a:	8d 85 c0 ef ff ff    	lea    -0x1040(%ebp),%eax
40eb80:	50                   	push   %eax
40eb81:	e8 05 b6 00 00       	call   0x41a18b
40eb86:	66 83 bc 45 be ef ff 	cmpw   $0x5c,-0x1042(%ebp,%eax,2)
40eb8d:	ff 5c
40eb8f:	59                   	pop    %ecx
40eb90:	74 13                	je     0x40eba5
40eb92:	8d 85 c0 ef ff ff    	lea    -0x1040(%ebp),%eax
40eb98:	68 5c a6 42 00       	push   $0x42a65c
40eb9d:	50                   	push   %eax
40eb9e:	e8 02 b6 00 00       	call   0x41a1a5
40eba3:	59                   	pop    %ecx
40eba4:	59                   	pop    %ecx
40eba5:	57                   	push   %edi
40eba6:	e8 e0 b5 00 00       	call   0x41a18b
40ebab:	8b f8                	mov    %eax,%edi
40ebad:	8d 85 c0 ef ff ff    	lea    -0x1040(%ebp),%eax
40ebb3:	50                   	push   %eax
40ebb4:	e8 d2 b5 00 00       	call   0x41a18b
40ebb9:	03 f8                	add    %eax,%edi
40ebbb:	59                   	pop    %ecx
40ebbc:	59                   	pop    %ecx
40ebbd:	81 ff ff 07 00 00    	cmp    $0x7ff,%edi
40ebc3:	73 20                	jae    0x40ebe5
40ebc5:	ff 75 e8             	push   -0x18(%ebp)
40ebc8:	8d 85 c0 ef ff ff    	lea    -0x1040(%ebp),%eax
40ebce:	50                   	push   %eax
40ebcf:	e8 d1 b5 00 00       	call   0x41a1a5
40ebd4:	eb 0d                	jmp    0x40ebe3
40ebd6:	57                   	push   %edi
40ebd7:	8d 85 c0 ef ff ff    	lea    -0x1040(%ebp),%eax