40e638:	47                   	inc    %edi
40e639:	3b f8                	cmp    %eax,%edi
40e63b:	8b 85 f8 eb ff ff    	mov    -0x1408(%ebp),%eax
40e641:	72 de                	jb     0x40e621
40e643:	8d 85 fc eb ff ff    	lea    -0x1404(%ebp),%eax
40e649:	2b f8                	sub    %eax,%edi
40e64b:	8d 85 f4 eb ff ff    	lea    -0x140c(%ebp),%eax
40e651:	6a 00                	push   $0x0
40e653:	50                   	push   %eax
40e654:	57                   	push   %edi
40e655:	8d 85 fc eb ff ff    	lea    -0x1404(%ebp),%eax
40e65b:	50                   	push   %eax
40e65c:	51                   	push   %ecx
40e65d:	ff 15 38 b1 41 00    	call   *0x41b138
40e663:	85 c0                	test   %eax,%eax
40e665:	74 1f                	je     0x40e686
40e667:	8b 85 f4 eb ff ff    	mov    -0x140c(%ebp),%eax
40e66d:	01 46 04             	add    %eax,0x4(%esi)
40e670:	3b c7                	cmp    %edi,%eax
40e672:	72 1a                	jb     0x40e68e
40e674:	8b 85 f8 eb ff ff    	mov    -0x1408(%ebp),%eax
40e67a:	8b 8d f0 eb ff ff    	mov    -0x1410(%ebp),%ecx
40e680:	3b d8                	cmp    %eax,%ebx
40e682:	72 97                	jb     0x40e61b
40e684:	eb 08                	jmp    0x40e68e
40e686:	ff 15 48 b0 41 00    	call   *0x41b048
40e68c:	89 06                	mov    %eax,(%esi)
40e68e:	8b 4d fc             	mov    -0x4(%ebp),%ecx
40e691:	8b c6                	mov    %esi,%eax
40e693:	5f                   	pop    %edi
40e694:	5e                   	pop    %esi
40e695:	33 cd                	xor    %ebp,%ecx
40e697:	5b                   	pop    %ebx
40e698:	e8 b9 48 ff ff       	call   0x402f56
40e69d:	8b e5                	mov    %ebp,%esp
40e69f:	5d                   	pop    %ebp
40e6a0:	c3                   	ret
40e6a1:	8b ff                	mov    %edi,%edi
40e6a3:	55                   	push   %ebp
40e6a4:	8b ec                	mov    %esp,%ebp
40e6a6:	b8 10 14 00 00       	mov    $0x1410,%eax
40e6ab:	e8 f0 9c 00 00       	call   0x4183a0
40e6b0:	a1 0c 30 42 00       	mov    0x42300c,%eax
40e6b5:	33 c5                	xor    %ebp,%eax
40e6b7:	89 45 fc             	mov    %eax,-0x4(%ebp)
40e6ba:	8b 4d 0c             	mov    0xc(%ebp),%ecx
40e6bd:	8b c1                	mov    %ecx,%eax
40e6bf:	c1 f8 06             	sar    $0x6,%eax
40e6c2:	83 e1 3f             	and    $0x3f,%ecx
40e6c5:	6b c9 30             	imul   $0x30,%ecx,%ecx
40e6c8:	53                   	push   %ebx
40e6c9:	8b 5d 10             	mov    0x10(%ebp),%ebx
40e6cc:	8b 04 85 c0 41 42 00 	mov    0x4241c0(,%eax,4),%eax
40e6d3:	56                   	push   %esi
40e6d4:	8b 75 08             	mov    0x8(%ebp),%esi
40e6d7:	57                   	push   %edi
40e6d8:	8b 4c 08 18          	mov    0x18(%eax,%ecx,1),%ecx
40e6dc:	8b 45 14             	mov    0x14(%ebp),%eax
40e6df:	03 c3                	add    %ebx,%eax
40e6e1:	89 8d f0 eb ff ff    	mov    %ecx,-0x1410(%ebp)
40e6e7:	33 d2                	xor    %edx,%edx
40e6e9:	89 85 f8 eb ff ff    	mov    %eax,-0x1408(%ebp)
40e6ef:	89 16                	mov    %edx,(%esi)
40e6f1:	89 56 04             	mov    %edx,0x4(%esi)
40e6f4:	89 56 08             	mov    %edx,0x8(%esi)
40e6f7:	eb 75                	jmp    0x40e76e
40e6f9:	8d bd fc eb ff ff    	lea    -0x1404(%ebp),%edi
40e6ff:	3b d8                	cmp    %eax,%ebx
40e701:	73 2b                	jae    0x40e72e
40e703:	0f b7 03             	movzwl (%ebx),%eax
40e706:	83 c3 02             	add    $0x2,%ebx
40e709:	83 f8 0a             	cmp    $0xa,%eax
40e70c:	75 0d                	jne    0x40e71b
40e70e:	83 46 08 02          	addl   $0x2,0x8(%esi)
40e712:	6a 0d                	push   $0xd
40e714:	5a                   	pop    %edx
40e715:	66 89 17             	mov    %dx,(%edi)
40e718:	83 c7 02             	add    $0x2,%edi
40e71b:	66 89 07             	mov    %ax,(%edi)
40e71e:	8d 45 fa             	lea    -0x6(%ebp),%eax
40e721:	83 c7 02             	add    $0x2,%edi
40e724:	3b f8                	cmp    %eax,%edi
40e726:	8b 85 f8 eb ff ff    	mov    -0x1408(%ebp),%eax
40e72c:	72 d1                	jb     0x40e6ff
40e72e:	8d 85 fc eb ff ff    	lea    -0x1404(%ebp),%eax
40e734:	2b f8                	sub    %eax,%edi
40e736:	8d 85 f4 eb ff ff    	lea    -0x140c(%ebp),%eax
40e73c:	6a 00                	push   $0x0
40e73e:	50                   	push   %eax
40e73f:	83 e7 fe             	and    $0xfffffffe,%edi
40e742:	8d 85 fc eb ff ff    	lea    -0x1404(%ebp),%eax
40e748:	57                   	push   %edi
40e749:	50                   	push   %eax
40e74a:	51                   	push   %ecx
40e74b:	ff 15 38 b1 41 00    	call   *0x41b138
40e751:	85 c0                	test   %eax,%eax
40e753:	74 1f                	je     0x40e774
40e755:	8b 85 f4 eb ff ff    	mov    -0x140c(%ebp),%eax
40e75b:	01 46 04             	add    %eax,0x4(%esi)
40e75e:	3b c7                	cmp    %edi,%eax
40e760:	72 1a                	jb     0x40e77c
40e762:	8b 85 f8 eb ff ff    	mov    -0x1408(%ebp),%eax
40e768:	8b 8d f0 eb ff ff    	mov    -0x1410(%ebp),%ecx
40e76e:	3b d8                	cmp    %eax,%ebx
40e770:	72 87                	jb     0x40e6f9
40e772:	eb 08                	jmp    0x40e77c
40e774:	ff 15 48 b0 41 00    	call   *0x41b048
40e77a:	89 06                	mov    %eax,(%esi)
40e77c:	8b 4d fc             	mov    -0x4(%ebp),%ecx
40e77f:	8b c6                	mov    %esi,%eax
40e781:	5f                   	pop    %edi
40e782:	5e                   	pop    %esi
40e783:	33 cd                	xor    %ebp,%ecx
40e785:	5b                   	pop    %ebx
40e786:	e8 cb 47 ff ff       	call   0x402f56
40e78b:	8b e5                	mov    %ebp,%esp
40e78d:	5d                   	pop    %ebp
40e78e:	c3                   	ret
40e78f:	8b ff                	mov    %edi,%edi
40e791:	55                   	push   %ebp
40e792:	8b ec                	mov    %esp,%ebp
40e794:	b8 18 14 00 00       	mov    $0x1418,%eax
40e799:	e8 02 9c 00 00       	call   0x4183a0
40e79e:	a1 0c 30 42 00       	mov    0x42300c,%eax
40e7a3:	33 c5                	xor    %ebp,%eax
40e7a5:	89 45 fc             	mov    %eax,-0x4(%ebp)
40e7a8:	8b 4d 0c             	mov    0xc(%ebp),%ecx
40e7ab:	8b c1                	mov    %ecx,%eax
40e7ad:	c1 f8 06             	sar    $0x6,%eax
40e7b0:	83 e1 3f             	and    $0x3f,%ecx
40e7b3:	6b c9 30             	imul   $0x30,%ecx,%ecx
40e7b6:	53                   	push   %ebx
40e7b7:	56                   	push   %esi
40e7b8:	8b 04 85 c0 41 42 00 	mov    0x4241c0(,%eax,4),%eax
40e7bf:	33 db                	xor    %ebx,%ebx
40e7c1:	8b 75 08             	mov    0x8(%ebp),%esi
40e7c4:	57                   	push   %edi
40e7c5:	8b 44 08 18          	mov    0x18(%eax,%ecx,1),%eax
40e7c9:	8b 4d 10             	mov    0x10(%ebp),%ecx
40e7cc:	8b f9                	mov    %ecx,%edi
40e7ce:	89 85 ec eb ff ff    	mov    %eax,-0x1414(%ebp)
40e7d4:	8b 45 14             	mov    0x14(%ebp),%eax
40e7d7:	03 c1                	add    %ecx,%eax
40e7d9:	89 1e                	mov    %ebx,(%esi)
40e7db:	89 5e 04             	mov    %ebx,0x4(%esi)
40e7de:	89 85 f4 eb ff ff    	mov    %eax,-0x140c(%ebp)
40e7e4:	89 5e 08             	mov    %ebx,0x8(%esi)
40e7e7:	3b c8                	cmp    %eax,%ecx
40e7e9:	0f 83 ba 00 00 00    	jae    0x40e8a9
40e7ef:	8b b5 f4 eb ff ff    	mov    -0x140c(%ebp),%esi
40e7f5:	8d 85 50 f9 ff ff    	lea    -0x6b0(%ebp),%eax
40e7fb:	3b fe                	cmp    %esi,%edi
40e7fd:	73 21                	jae    0x40e820
40e7ff:	0f b7 0f             	movzwl (%edi),%ecx
40e802:	83 c7 02             	add    $0x2,%edi
40e805:	83 f9 0a             	cmp    $0xa,%ecx
40e808:	75 09                	jne    0x40e813
40e80a:	6a 0d                	push   $0xd
40e80c:	5a                   	pop    %edx
40e80d:	66 89 10             	mov    %dx,(%eax)
40e810:	83 c0 02             	add    $0x2,%eax
40e813:	66 89 08             	mov    %cx,(%eax)
40e816:	83 c0 02             	add    $0x2,%eax
40e819:	8d 4d f8             	lea    -0x8(%ebp),%ecx
40e81c:	3b c1                	cmp    %ecx,%eax
40e81e:	72 db                	jb     0x40e7fb
40e820:	53                   	push   %ebx
40e821:	53                   	push   %ebx
40e822:	68 55 0d 00 00       	push   $0xd55
40e827:	8d 8d f8 eb ff ff    	lea    -0x1408(%ebp),%ecx
40e82d:	51                   	push   %ecx
40e82e:	8d 8d 50 f9 ff ff    	lea    -0x6b0(%ebp),%ecx
40e834:	2b c1                	sub    %ecx,%eax
40e836:	d1 f8                	sar    $1,%eax
40e838:	50                   	push   %eax
40e839:	8b c1                	mov    %ecx,%eax
40e83b:	50                   	push   %eax
40e83c:	53                   	push   %ebx
40e83d:	68 e9 fd 00 00       	push   $0xfde9
40e842:	ff 15 30 b1 41 00    	call   *0x41b130
40e848:	8b 75 08             	mov    0x8(%ebp),%esi
40e84b:	89 85 e8 eb ff ff    	mov    %eax,-0x1418(%ebp)
40e851:	85 c0                	test   %eax,%eax
40e853:	74 4c                	je     0x40e8a1
40e855:	6a 00                	push   $0x0
40e857:	8d 8d f0 eb ff ff    	lea    -0x1410(%ebp),%ecx
40e85d:	2b c3                	sub    %ebx,%eax
40e85f:	51                   	push   %ecx
40e860:	50                   	push   %eax
40e861:	8d 85 f8 eb ff ff    	lea    -0x1408(%ebp),%eax
40e867:	03 c3                	add    %ebx,%eax
40e869:	50                   	push   %eax
40e86a:	ff b5 ec eb ff ff    	push   -0x1414(%ebp)
40e870:	ff 15 38 b1 41 00    	call   *0x41b138
40e876:	85 c0                	test   %eax,%eax
40e878:	74 27                	je     0x40e8a1
40e87a:	03 9d f0 eb ff ff    	add    -0x1410(%ebp),%ebx
40e880:	8b 85 e8 eb ff ff    	mov    -0x1418(%ebp),%eax
40e886:	3b d8                	cmp    %eax,%ebx
40e888:	72 cb                	jb     0x40e855
40e88a:	8b c7                	mov    %edi,%eax
40e88c:	2b 45 10             	sub    0x10(%ebp),%eax
40e88f:	89 46 04             	mov    %eax,0x4(%esi)
40e892:	3b bd f4 eb ff ff    	cmp    -0x140c(%ebp),%edi
40e898:	73 0f                	jae    0x40e8a9
40e89a:	33 db                	xor    %ebx,%ebx
40e89c:	e9 4e ff ff ff       	jmp    0x40e7ef
40e8a1:	ff 15 48 b0 41 00    	call   *0x41b048
40e8a7:	89 06                	mov    %eax,(%esi)
40e8a9:	8b 4d fc             	mov    -0x4(%ebp),%ecx
40e8ac:	8b c6                	mov    %esi,%eax
40e8ae:	5f                   	pop    %edi
40e8af:	5e                   	pop    %esi
40e8b0:	33 cd                	xor    %ebp,%ecx
40e8b2:	5b                   	pop    %ebx
40e8b3:	e8 9e 46 ff ff       	call   0x402f56
40e8b8:	8b e5                	mov    %ebp,%esp
40e8ba:	5d                   	pop    %ebp
40e8bb:	c3                   	ret
40e8bc:	6a 14                	push   $0x14
40e8be:	68 48 1e 42 00       	push   $0x421e48
40e8c3:	e8 88 52 ff ff       	call   0x403b50
40e8c8:	8b 75 08             	mov    0x8(%ebp),%esi
40e8cb:	83 fe fe             	cmp    $0xfffffffe,%esi
40e8ce:	75 18                	jne    0x40e8e8
40e8d0:	e8 1f 94 ff ff       	call   0x407cf4
40e8d5:	83 20 00             	andl   $0x0,(%eax)
40e8d8:	e8 2a 94 ff ff       	call   0x407d07
40e8dd:	c7 00 09 00 00 00    	movl   $0x9,(%eax)
40e8e3:	e9 b6 00 00 00       	jmp    0x40e99e
40e8e8:	85 f6                	test   %esi,%esi
40e8ea:	0f 88 96 00 00 00    	js     0x40e986
40e8f0:	3b 35 c0 43 42 00    	cmp    0x4243c0,%esi
40e8f6:	0f 83 8a 00 00 00    	jae    0x40e986
40e8fc:	8b de                	mov    %esi,%ebx
40e8fe:	c1 fb 06             	sar    $0x6,%ebx
40e901:	8b c6                	mov    %esi,%eax
40e903:	83 e0 3f             	and    $0x3f,%eax
40e906:	6b c8 30             	imul   $0x30,%eax,%ecx
40e909:	89 4d e0             	mov    %ecx,-0x20(%ebp)
40e90c:	8b 04 9d c0 41 42 00 	mov    0x4241c0(,%ebx,4),%eax
40e913:	0f b6 44 08 28       	movzbl 0x28(%eax,%ecx,1),%eax
40e918:	83 e0 01             	and    $0x1,%eax
40e91b:	74 69                	je     0x40e986
40e91d:	56                   	push   %esi
40e91e:	e8 95 da ff ff       	call   0x40c3b8
40e923:	59                   	pop    %ecx
40e924:	83 cf ff             	or     $0xffffffff,%edi
40e927:	89 7d e4             	mov    %edi,-0x1c(%ebp)
40e92a:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
40e92e:	8b 04 9d c0 41 42 00 	mov    0x4241c0(,%ebx,4),%eax
40e935:	8b 4d e0             	mov    -0x20(%ebp),%ecx
40e938:	f6 44 08 28 01       	testb  $0x1,0x28(%eax,%ecx,1)
40e93d:	75 15                	jne    0x40e954
40e93f:	e8 c3 93 ff ff       	call   0x407d07
40e944:	c7 00 09 00 00 00    	movl   $0x9,(%eax)
40e94a:	e8 a5 93 ff ff       	call   0x407cf4
40e94f:	83 20 00             	andl   $0x0,(%eax)
40e952:	eb 14                	jmp    0x40e968
40e954:	ff 75 10             	push   0x10(%ebp)
40e957:	ff 75 0c             	push   0xc(%ebp)
40e95a:	56                   	push   %esi
40e95b:	e8 47 00 00 00       	call   0x40e9a7
40e960:	83 c4 0c             	add    $0xc,%esp
40e963:	8b f8                	mov    %eax,%edi
40e965:	89 7d e4             	mov    %edi,-0x1c(%ebp)
40e968:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
40e96f:	e8 0a 00 00 00       	call   0x40e97e
40e974:	8b c7                	mov    %edi,%eax
40e976:	eb 29                	jmp    0x40e9a1
40e978:	8b 75 08             	mov    0x8(%ebp),%esi
40e97b:	8b 7d e4             	mov    -0x1c(%ebp),%edi
40e97e:	56                   	push   %esi
40e97f:	e8 eb da ff ff       	call   0x40c46f
40e984:	59                   	pop    %ecx
40e985:	c3                   	ret
40e986:	e8 69 93 ff ff       	call   0x407cf4
40e98b:	83 20 00             	andl   $0x0,(%eax)
40e98e:	e8 74 93 ff ff       	call   0x407d07
40e993:	c7 00 09 00 00 00    	movl   $0x9,(%eax)
40e999:	e8 90 92 ff ff       	call   0x407c2e
40e99e:	83 c8 ff             	or     $0xffffffff,%eax
40e9a1:	e8 f0 51 ff ff       	call   0x403b96
40e9a6:	c3                   	ret
40e9a7:	8b ff                	mov    %edi,%edi
40e9a9:	55                   	push   %ebp
40e9aa:	8b ec                	mov    %esp,%ebp
40e9ac:	83 ec 30             	sub    $0x30,%esp
40e9af:	a1 0c 30 42 00       	mov    0x42300c,%eax
40e9b4:	33 c5                	xor    %ebp,%eax
40e9b6:	89 45 fc             	mov    %eax,-0x4(%ebp)
40e9b9:	8b 4d 10             	mov    0x10(%ebp),%ecx
40e9bc:	89 4d f8             	mov    %ecx,-0x8(%ebp)
40e9bf:	56                   	push   %esi
40e9c0:	8b 75 08             	mov    0x8(%ebp),%esi
40e9c3:	57                   	push   %edi
40e9c4:	8b 7d 0c             	mov    0xc(%ebp),%edi
40e9c7:	89 7d d0             	mov    %edi,-0x30(%ebp)
40e9ca:	85 c9                	test   %ecx,%ecx
40e9cc:	75 07                	jne    0x40e9d5
40e9ce:	33 c0                	xor    %eax,%eax
40e9d0:	e9 ce 01 00 00       	jmp    0x40eba3
40e9d5:	85 ff                	test   %edi,%edi
40e9d7:	75 1f                	jne    0x40e9f8
40e9d9:	e8 16 93 ff ff       	call   0x407cf4
40e9de:	21 38                	and    %edi,(%eax)
40e9e0:	e8 22 93 ff ff       	call   0x407d07
40e9e5:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
40e9eb:	e8 3e 92 ff ff       	call   0x407c2e
40e9f0:	83 c8 ff             	or     $0xffffffff,%eax
40e9f3:	e9 ab 01 00 00       	jmp    0x40eba3
40e9f8:	53                   	push   %ebx
40e9f9:	8b c6                	mov    %esi,%eax
40e9fb:	8b de                	mov    %esi,%ebx
40e9fd:	c1 fb 06             	sar    $0x6,%ebx
40ea00:	83 e0 3f             	and    $0x3f,%eax
40ea03:	6b d0 30             	imul   $0x30,%eax,%edx
40ea06:	89 5d e4             	mov    %ebx,-0x1c(%ebp)
40ea09:	8b 04 9d c0 41 42 00 	mov    0x4241c0(,%ebx,4),%eax
40ea10:	89 45 d4             	mov    %eax,-0x2c(%ebp)
40ea13:	89 55 e8             	mov    %edx,-0x18(%ebp)
40ea16:	8a 5c 10 29          	mov    0x29(%eax,%edx,1),%bl
40ea1a:	80 fb 02             	cmp    $0x2,%bl
40ea1d:	74 05                	je     0x40ea24
40ea1f:	80 fb 01             	cmp    $0x1,%bl
40ea22:	75 28                	jne    0x40ea4c
40ea24:	8b c1                	mov    %ecx,%eax
40ea26:	f7 d0                	not    %eax
40ea28:	a8 01                	test   $0x1,%al
40ea2a:	75 1d                	jne    0x40ea49
40ea2c:	e8 c3 92 ff ff       	call   0x407cf4
40ea31:	83 20 00             	andl   $0x0,(%eax)
40ea34:	e8 ce 92 ff ff       	call   0x407d07
40ea39:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
40ea3f:	e8 ea 91 ff ff       	call   0x407c2e
40ea44:	e9 51 01 00 00       	jmp    0x40eb9a
40ea49:	8b 45 d4             	mov    -0x2c(%ebp),%eax
40ea4c:	f6 44 10 28 20       	testb  $0x20,0x28(%eax,%edx,1)
40ea51:	74 0f                	je     0x40ea62
40ea53:	6a 02                	push   $0x2
40ea55:	6a 00                	push   $0x0
40ea57:	6a 00                	push   $0x0
40ea59:	56                   	push   %esi
40ea5a:	e8 b2 f8 ff ff       	call   0x40e311
40ea5f:	83 c4 10             	add    $0x10,%esp
40ea62:	56                   	push   %esi
40ea63:	e8 e4 fa ff ff       	call   0x40e54c
40ea68:	59                   	pop    %ecx
40ea69:	84 c0                	test   %al,%al
40ea6b:	74 39                	je     0x40eaa6