4075a6:	8d 86 e8 05 00 00    	lea    0x5e8(%esi),%eax
4075ac:	89 8e e0 05 00 00    	mov    %ecx,0x5e0(%esi)
4075b2:	89 86 e4 05 00 00    	mov    %eax,0x5e4(%esi)
4075b8:	85 c9                	test   %ecx,%ecx
4075ba:	0f 84 cc 00 00 00    	je     0x40768c
4075c0:	8b d3                	mov    %ebx,%edx
4075c2:	89 9d e8 fb ff ff    	mov    %ebx,-0x418(%ebp)
4075c8:	8b 86 e4 05 00 00    	mov    0x5e4(%esi),%eax
4075ce:	8b 8d ec fb ff ff    	mov    -0x414(%ebp),%ecx
4075d4:	83 c0 08             	add    $0x8,%eax
4075d7:	03 d0                	add    %eax,%edx
4075d9:	8b 0c 8f             	mov    (%edi,%ecx,4),%ecx
4075dc:	e8 1f c7 ff ff       	call   0x403d00
4075e1:	84 c0                	test   %al,%al
4075e3:	0f 84 85 00 00 00    	je     0x40766e
4075e9:	8b 85 ec fb ff ff    	mov    -0x414(%ebp),%eax
4075ef:	40                   	inc    %eax
4075f0:	89 85 ec fb ff ff    	mov    %eax,-0x414(%ebp)
4075f6:	8b 0c 87             	mov    (%edi,%eax,4),%ecx
4075f9:	e8 78 c6 ff ff       	call   0x403c76
4075fe:	3b 86 d8 05 00 00    	cmp    0x5d8(%esi),%eax
407604:	75 61                	jne    0x407667
407606:	8b 85 ec fb ff ff    	mov    -0x414(%ebp),%eax
40760c:	40                   	inc    %eax
40760d:	89 85 ec fb ff ff    	mov    %eax,-0x414(%ebp)
407613:	8b 0c 87             	mov    (%edi,%eax,4),%ecx
407616:	e8 5b c6 ff ff       	call   0x403c76
40761b:	3b 86 dc 05 00 00    	cmp    0x5dc(%esi),%eax
407621:	75 3d                	jne    0x407660
407623:	8b 8d ec fb ff ff    	mov    -0x414(%ebp),%ecx
407629:	8b 4c 8f 04          	mov    0x4(%edi,%ecx,4),%ecx
40762d:	e8 44 c6 ff ff       	call   0x403c76
407632:	8b 95 e8 fb ff ff    	mov    -0x418(%ebp),%edx
407638:	43                   	inc    %ebx
407639:	8b 8e e4 05 00 00    	mov    0x5e4(%esi),%ecx
40763f:	83 85 ec fb ff ff 02 	addl   $0x2,-0x414(%ebp)
407646:	89 04 0a             	mov    %eax,(%edx,%ecx,1)
407649:	83 c2 10             	add    $0x10,%edx
40764c:	89 95 e8 fb ff ff    	mov    %edx,-0x418(%ebp)
407652:	3b 9d e4 fb ff ff    	cmp    -0x41c(%ebp),%ebx
407658:	0f 82 6a ff ff ff    	jb     0x4075c8
40765e:	eb 2c                	jmp    0x40768c
407660:	68 63 04 00 00       	push   $0x463
407665:	eb 0c                	jmp    0x407673
407667:	68 62 04 00 00       	push   $0x462
40766c:	eb 05                	jmp    0x407673
40766e:	68 61 04 00 00       	push   $0x461
407673:	e8 17 b3 ff ff       	call   0x40298f
407678:	c7 04 24 c4 13 40 00 	movl   $0x4013c4,(%esp)
40767f:	e8 36 b2 ff ff       	call   0x4028ba
407684:	59                   	pop    %ecx
407685:	e9 08 fe ff ff       	jmp    0x407492
40768a:	8b f3                	mov    %ebx,%esi
40768c:	8b 85 f0 fb ff ff    	mov    -0x410(%ebp),%eax
407692:	8d 8d f0 fb ff ff    	lea    -0x410(%ebp),%ecx
407698:	f7 d8                	neg    %eax
40769a:	1b c0                	sbb    %eax,%eax
40769c:	23 c1                	and    %ecx,%eax
40769e:	50                   	push   %eax
40769f:	8d 85 a0 fb ff ff    	lea    -0x460(%ebp),%eax
4076a5:	50                   	push   %eax
4076a6:	56                   	push   %esi
4076a7:	ff b5 e0 fb ff ff    	push   -0x420(%ebp)
4076ad:	ff b5 d8 fb ff ff    	push   -0x428(%ebp)
4076b3:	ff b5 dc fb ff ff    	push   -0x424(%ebp)
4076b9:	ff b5 d4 fb ff ff    	push   -0x42c(%ebp)
4076bf:	ff 15 44 f0 40 00    	call   *0x40f044
4076c5:	8b f8                	mov    %eax,%edi
4076c7:	85 f6                	test   %esi,%esi
4076c9:	74 07                	je     0x4076d2
4076cb:	56                   	push   %esi
4076cc:	ff 15 b0 f0 40 00    	call   *0x40f0b0
4076d2:	8b c7                	mov    %edi,%eax
4076d4:	8b 4d fc             	mov    -0x4(%ebp),%ecx
4076d7:	5f                   	pop    %edi
4076d8:	5e                   	pop    %esi
4076d9:	33 cd                	xor    %ebp,%ecx
4076db:	5b                   	pop    %ebx
4076dc:	e8 ef 13 00 00       	call   0x408ad0
4076e1:	c9                   	leave
4076e2:	c3                   	ret
4076e3:	8b ff                	mov    %edi,%edi
4076e5:	55                   	push   %ebp
4076e6:	8b ec                	mov    %esp,%ebp
4076e8:	83 ec 0c             	sub    $0xc,%esp
4076eb:	53                   	push   %ebx
4076ec:	56                   	push   %esi
4076ed:	57                   	push   %edi
4076ee:	33 ff                	xor    %edi,%edi
4076f0:	8d 45 fc             	lea    -0x4(%ebp),%eax
4076f3:	57                   	push   %edi
4076f4:	50                   	push   %eax
4076f5:	89 7d f4             	mov    %edi,-0xc(%ebp)
4076f8:	89 7d fc             	mov    %edi,-0x4(%ebp)
4076fb:	ff 15 58 f0 40 00    	call   *0x40f058
407701:	8b f0                	mov    %eax,%esi
407703:	83 fe 7a             	cmp    $0x7a,%esi
407706:	75 69                	jne    0x407771
407708:	8b 4d fc             	mov    -0x4(%ebp),%ecx
40770b:	03 c9                	add    %ecx,%ecx
40770d:	51                   	push   %ecx
40770e:	ff 15 a4 f0 40 00    	call   *0x40f0a4
407714:	8b d8                	mov    %eax,%ebx
407716:	85 db                	test   %ebx,%ebx
407718:	74 72                	je     0x40778c
40771a:	53                   	push   %ebx
40771b:	8d 45 fc             	lea    -0x4(%ebp),%eax
40771e:	50                   	push   %eax
40771f:	ff 15 58 f0 40 00    	call   *0x40f058
407725:	8b f0                	mov    %eax,%esi
407727:	85 f6                	test   %esi,%esi
407729:	75 3d                	jne    0x407768
40772b:	8b c7                	mov    %edi,%eax
40772d:	89 7d f8             	mov    %edi,-0x8(%ebp)
407730:	39 45 fc             	cmp    %eax,-0x4(%ebp)
407733:	76 33                	jbe    0x407768
407735:	8d 0c 43             	lea    (%ebx,%eax,2),%ecx
407738:	8b f9                	mov    %ecx,%edi
40773a:	8d 57 02             	lea    0x2(%edi),%edx
40773d:	66 8b 07             	mov    (%edi),%ax
407740:	83 c7 02             	add    $0x2,%edi
407743:	66 3b 45 f4          	cmp    -0xc(%ebp),%ax
407747:	75 f4                	jne    0x40773d
407749:	51                   	push   %ecx
40774a:	2b fa                	sub    %edx,%edi
40774c:	68 18 1d 40 00       	push   $0x401d18
407751:	d1 ff                	sar    $1,%edi
407753:	e8 62 b1 ff ff       	call   0x4028ba
407758:	8b 45 f8             	mov    -0x8(%ebp),%eax
40775b:	40                   	inc    %eax
40775c:	03 c7                	add    %edi,%eax
40775e:	59                   	pop    %ecx
40775f:	59                   	pop    %ecx
407760:	89 45 f8             	mov    %eax,-0x8(%ebp)
407763:	3b 45 fc             	cmp    -0x4(%ebp),%eax
407766:	72 cd                	jb     0x407735
407768:	53                   	push   %ebx
407769:	ff 15 b0 f0 40 00    	call   *0x40f0b0
40776f:	eb 1b                	jmp    0x40778c
407771:	85 f6                	test   %esi,%esi
407773:	75 17                	jne    0x40778c
407775:	68 89 04 00 00       	push   $0x489
40777a:	e8 10 b2 ff ff       	call   0x40298f
40777f:	c7 04 24 c4 13 40 00 	movl   $0x4013c4,(%esp)
407786:	e8 2f b1 ff ff       	call   0x4028ba
40778b:	59                   	pop    %ecx
40778c:	5f                   	pop    %edi
40778d:	8b c6                	mov    %esi,%eax
40778f:	5e                   	pop    %esi
407790:	5b                   	pop    %ebx
407791:	c9                   	leave
407792:	c3                   	ret
407793:	8b ff                	mov    %edi,%edi
407795:	55                   	push   %ebp
407796:	8b ec                	mov    %esp,%ebp
407798:	53                   	push   %ebx
407799:	56                   	push   %esi
40779a:	57                   	push   %edi
40779b:	6a 34                	push   $0x34
40779d:	8b fa                	mov    %edx,%edi
40779f:	8b d9                	mov    %ecx,%ebx
4077a1:	ff 15 a4 f0 40 00    	call   *0x40f0a4
4077a7:	8b f0                	mov    %eax,%esi
4077a9:	85 f6                	test   %esi,%esi
4077ab:	0f 84 cc 00 00 00    	je     0x40787d
4077b1:	6a 34                	push   $0x34
4077b3:	6a 00                	push   $0x0
4077b5:	56                   	push   %esi
4077b6:	e8 29 19 00 00       	call   0x4090e4
4077bb:	83 c4 0c             	add    $0xc,%esp
4077be:	c7 46 04 e0 00 00 00 	movl   $0xe0,0x4(%esi)
4077c5:	c7 46 0c 01 00 00 00 	movl   $0x1,0xc(%esi)
4077cc:	0f b7 03             	movzwl (%ebx),%eax
4077cf:	6a 2a                	push   $0x2a
4077d1:	59                   	pop    %ecx
4077d2:	6a 2d                	push   $0x2d
4077d4:	5a                   	pop    %edx
4077d5:	66 3b c2             	cmp    %dx,%ax
4077d8:	74 32                	je     0x40780c
4077da:	66 3b c1             	cmp    %cx,%ax
4077dd:	74 2d                	je     0x40780c
4077df:	51                   	push   %ecx
4077e0:	8d 56 2c             	lea    0x2c(%esi),%edx
4077e3:	8b cb                	mov    %ebx,%ecx
4077e5:	e8 e8 b7 ff ff       	call   0x402fd2
4077ea:	8b c8                	mov    %eax,%ecx
4077ec:	85 c9                	test   %ecx,%ecx
4077ee:	0f 85 8c 00 00 00    	jne    0x407880
4077f4:	8b 4e 2c             	mov    0x2c(%esi),%ecx
4077f7:	8d 51 01             	lea    0x1(%ecx),%edx
4077fa:	8a 01                	mov    (%ecx),%al
4077fc:	41                   	inc    %ecx
4077fd:	84 c0                	test   %al,%al
4077ff:	75 f9                	jne    0x4077fa
407801:	2b ca                	sub    %edx,%ecx
407803:	6a 2a                	push   $0x2a
407805:	89 4e 24             	mov    %ecx,0x24(%esi)
407808:	59                   	pop    %ecx
407809:	6a 2d                	push   $0x2d
40780b:	5a                   	pop    %edx
40780c:	0f b7 07             	movzwl (%edi),%eax
40780f:	66 3b c2             	cmp    %dx,%ax
407812:	74 54                	je     0x407868
407814:	66 3b c1             	cmp    %cx,%ax
407817:	74 4f                	je     0x407868
407819:	83 f8 30             	cmp    $0x30,%eax
40781c:	75 21                	jne    0x40783f
40781e:	0f b7 47 02          	movzwl 0x2(%edi),%eax
407822:	83 f8 58             	cmp    $0x58,%eax
407825:	74 05                	je     0x40782c
407827:	83 f8 78             	cmp    $0x78,%eax
40782a:	75 13                	jne    0x40783f
40782c:	8d 46 28             	lea    0x28(%esi),%eax
40782f:	50                   	push   %eax
407830:	8d 56 30             	lea    0x30(%esi),%edx
407833:	8d 4f 04             	lea    0x4(%edi),%ecx
407836:	e8 8d c3 ff ff       	call   0x403bc8
40783b:	8b c8                	mov    %eax,%ecx
40783d:	eb 33                	jmp    0x407872
40783f:	8d 5e 30             	lea    0x30(%esi),%ebx
407842:	83 23 00             	andl   $0x0,(%ebx)
407845:	8b d3                	mov    %ebx,%edx
407847:	51                   	push   %ecx
407848:	8b cf                	mov    %edi,%ecx
40784a:	e8 83 b7 ff ff       	call   0x402fd2
40784f:	8b c8                	mov    %eax,%ecx
407851:	85 c9                	test   %ecx,%ecx
407853:	75 2b                	jne    0x407880
407855:	8b 13                	mov    (%ebx),%edx
407857:	8d 7a 01             	lea    0x1(%edx),%edi
40785a:	8a 02                	mov    (%edx),%al
40785c:	42                   	inc    %edx
40785d:	84 c0                	test   %al,%al
40785f:	75 f9                	jne    0x40785a
407861:	2b d7                	sub    %edi,%edx
407863:	89 56 28             	mov    %edx,0x28(%esi)
407866:	eb 0e                	jmp    0x407876
407868:	83 66 30 00          	andl   $0x0,0x30(%esi)
40786c:	83 66 28 00          	andl   $0x0,0x28(%esi)
407870:	33 c9                	xor    %ecx,%ecx
407872:	85 c9                	test   %ecx,%ecx
407874:	75 0a                	jne    0x407880
407876:	8b 45 08             	mov    0x8(%ebp),%eax
407879:	89 30                	mov    %esi,(%eax)
40787b:	eb 03                	jmp    0x407880
40787d:	6a 08                	push   $0x8
40787f:	59                   	pop    %ecx
407880:	5f                   	pop    %edi
407881:	5e                   	pop    %esi
407882:	8b c1                	mov    %ecx,%eax
407884:	5b                   	pop    %ebx
407885:	5d                   	pop    %ebp
407886:	c2 04 00             	ret    $0x4
407889:	8b ff                	mov    %edi,%edi
40788b:	55                   	push   %ebp
40788c:	8b ec                	mov    %esp,%ebp
40788e:	83 ec 74             	sub    $0x74,%esp
407891:	a1 04 a0 40 00       	mov    0x40a004,%eax
407896:	33 c5                	xor    %ebp,%eax
407898:	89 45 fc             	mov    %eax,-0x4(%ebp)
40789b:	53                   	push   %ebx
40789c:	56                   	push   %esi
40789d:	57                   	push   %edi
40789e:	33 f6                	xor    %esi,%esi
4078a0:	8d 45 b8             	lea    -0x48(%ebp),%eax
4078a3:	6a 40                	push   $0x40
4078a5:	56                   	push   %esi
4078a6:	50                   	push   %eax
4078a7:	8b da                	mov    %edx,%ebx
4078a9:	89 75 94             	mov    %esi,-0x6c(%ebp)
4078ac:	8b f9                	mov    %ecx,%edi
4078ae:	e8 31 18 00 00       	call   0x4090e4
4078b3:	83 c4 0c             	add    $0xc,%esp
4078b6:	83 ff 03             	cmp    $0x3,%edi
4078b9:	74 14                	je     0x4078cf
4078bb:	83 ff 05             	cmp    $0x5,%edi
4078be:	74 0f                	je     0x4078cf
4078c0:	6a 21                	push   $0x21
4078c2:	59                   	pop    %ecx
4078c3:	e8 97 b1 ff ff       	call   0x402a5f
4078c8:	33 c0                	xor    %eax,%eax
4078ca:	e9 ec 00 00 00       	jmp    0x4079bb
4078cf:	8b 43 08             	mov    0x8(%ebx),%eax
4078d2:	89 45 90             	mov    %eax,-0x70(%ebp)
4078d5:	83 ff 05             	cmp    $0x5,%edi
4078d8:	75 1b                	jne    0x4078f5
4078da:	8b 53 10             	mov    0x10(%ebx),%edx
4078dd:	8d 45 94             	lea    -0x6c(%ebp),%eax
4078e0:	8b 4b 0c             	mov    0xc(%ebx),%ecx
4078e3:	50                   	push   %eax
4078e4:	e8 aa fe ff ff       	call   0x407793
4078e9:	8b 75 94             	mov    -0x6c(%ebp),%esi
4078ec:	8b f8                	mov    %eax,%edi
4078ee:	8b 45 90             	mov    -0x70(%ebp),%eax
4078f1:	33 db                	xor    %ebx,%ebx
4078f3:	eb 04                	jmp    0x4078f9
4078f5:	33 db                	xor    %ebx,%ebx
4078f7:	8b fb                	mov    %ebx,%edi
4078f9:	85 ff                	test   %edi,%edi
4078fb:	0f 85 8f 00 00 00    	jne    0x407990
407901:	8d 4d 98             	lea    -0x68(%ebp),%ecx
407904:	51                   	push   %ecx
407905:	8d 4d a8             	lea    -0x58(%ebp),%ecx
407908:	51                   	push   %ecx
407909:	53                   	push   %ebx
40790a:	53                   	push   %ebx
40790b:	53                   	push   %ebx
40790c:	56                   	push   %esi
40790d:	53                   	push   %ebx
40790e:	53                   	push   %ebx
40790f:	53                   	push   %ebx
407910:	53                   	push   %ebx
407911:	6a ff                	push   $0xffffffff
407913:	53                   	push   %ebx
407914:	53                   	push   %ebx
407915:	50                   	push   %eax
407916:	ff 15 38 f0 40 00    	call   *0x40f038
40791c:	8b f8                	mov    %eax,%edi
40791e:	85 ff                	test   %edi,%edi
407920:	75 6e                	jne    0x407990
407922:	6a 20                	push   $0x20
407924:	8d 45 b8             	lea    -0x48(%ebp),%eax
407927:	50                   	push   %eax
407928:	68 64 04 00 00       	push   $0x464
40792d:	53                   	push   %ebx
40792e:	ff 15 20 f1 40 00    	call   *0x40f120
407934:	85 c0                	test   %eax,%eax
407936:	75 04                	jne    0x40793c
407938:	66 89 45 b8          	mov    %ax,-0x48(%ebp)
40793c:	ff 75 b4             	push   -0x4c(%ebp)
40793f:	8d 45 b8             	lea    -0x48(%ebp),%eax
407942:	ff 75 b0             	push   -0x50(%ebp)
407945:	ff 75 ac             	push   -0x54(%ebp)
407948:	ff 75 a8             	push   -0x58(%ebp)
40794b:	50                   	push   %eax
40794c:	68 b4 19 40 00       	push   $0x4019b4
407951:	e8 64 af ff ff       	call   0x4028ba
407956:	83 c4 18             	add    $0x18,%esp
407959:	8d 45 b8             	lea    -0x48(%ebp),%eax
40795c:	6a 20                	push   $0x20
40795e:	50                   	push   %eax
40795f:	68 65 04 00 00       	push   $0x465
407964:	53                   	push   %ebx
407965:	ff 15 20 f1 40 00    	call   *0x40f120
40796b:	85 c0                	test   %eax,%eax
40796d:	75 04                	jne    0x407973
40796f:	66 89 45 b8          	mov    %ax,-0x48(%ebp)
407973:	ff 75 a4             	push   -0x5c(%ebp)
407976:	8d 45 b8             	lea    -0x48(%ebp),%eax
407979:	ff 75 a0             	push   -0x60(%ebp)