407635:	8b f1                	mov    %ecx,%esi
407637:	8b 16                	mov    (%esi),%edx
407639:	0f b7 0a             	movzwl (%edx),%ecx
40763c:	8b c1                	mov    %ecx,%eax
40763e:	83 f8 09             	cmp    $0x9,%eax
407641:	72 1a                	jb     0x40765d
407643:	83 f8 0a             	cmp    $0xa,%eax
407646:	76 0a                	jbe    0x407652
407648:	83 f8 0d             	cmp    $0xd,%eax
40764b:	74 05                	je     0x407652
40764d:	83 f9 20             	cmp    $0x20,%ecx
407650:	75 0b                	jne    0x40765d
407652:	52                   	push   %edx
407653:	ff 15 f8 f0 40 00    	call   *0x40f0f8
407659:	89 06                	mov    %eax,(%esi)
40765b:	eb da                	jmp    0x407637
40765d:	5e                   	pop    %esi
40765e:	c3                   	ret
40765f:	8b ff                	mov    %edi,%edi
407661:	55                   	push   %ebp
407662:	8b ec                	mov    %esp,%ebp
407664:	b8 14 20 00 00       	mov    $0x2014,%eax
407669:	e8 42 2d 00 00       	call   0x40a3b0
40766e:	a1 e4 c1 40 00       	mov    0x40c1e4,%eax
407673:	33 c5                	xor    %ebp,%eax
407675:	89 45 fc             	mov    %eax,-0x4(%ebp)
407678:	8b 45 08             	mov    0x8(%ebp),%eax
40767b:	83 a5 f4 df ff ff 00 	andl   $0x0,-0x200c(%ebp)
407682:	53                   	push   %ebx
407683:	56                   	push   %esi
407684:	57                   	push   %edi
407685:	8b f9                	mov    %ecx,%edi
407687:	8d 8d f4 df ff ff    	lea    -0x200c(%ebp),%ecx
40768d:	51                   	push   %ecx
40768e:	50                   	push   %eax
40768f:	8b cf                	mov    %edi,%ecx
407691:	e8 93 ed ff ff       	call   0x406429
407696:	8b f0                	mov    %eax,%esi
407698:	85 f6                	test   %esi,%esi
40769a:	0f 88 ff 00 00 00    	js     0x40779f
4076a0:	8b 85 f4 df ff ff    	mov    -0x200c(%ebp),%eax
4076a6:	89 07                	mov    %eax,(%edi)
4076a8:	e9 d2 00 00 00       	jmp    0x40777f
4076ad:	8d 85 f8 df ff ff    	lea    -0x2008(%ebp),%eax
4076b3:	8b cf                	mov    %edi,%ecx
4076b5:	50                   	push   %eax
4076b6:	e8 7a f7 ff ff       	call   0x406e35
4076bb:	8b f0                	mov    %eax,%esi
4076bd:	85 f6                	test   %esi,%esi
4076bf:	0f 88 cc 00 00 00    	js     0x407791
4076c5:	33 f6                	xor    %esi,%esi
4076c7:	ff 34 f5 c0 16 40 00 	push   0x4016c0(,%esi,8)
4076ce:	8d 85 f8 df ff ff    	lea    -0x2008(%ebp),%eax
4076d4:	50                   	push   %eax
4076d5:	ff 15 8c f0 40 00    	call   *0x40f08c
4076db:	85 c0                	test   %eax,%eax
4076dd:	74 0a                	je     0x4076e9
4076df:	46                   	inc    %esi
4076e0:	83 fe 0e             	cmp    $0xe,%esi
4076e3:	72 e2                	jb     0x4076c7
4076e5:	33 db                	xor    %ebx,%ebx
4076e7:	eb 07                	jmp    0x4076f0
4076e9:	8b 1c f5 c4 16 40 00 	mov    0x4016c4(,%esi,8),%ebx
4076f0:	85 db                	test   %ebx,%ebx
4076f2:	0f 84 94 00 00 00    	je     0x40778c
4076f8:	8d 85 f8 df ff ff    	lea    -0x2008(%ebp),%eax
4076fe:	8b cf                	mov    %edi,%ecx
407700:	50                   	push   %eax
407701:	e8 2f f7 ff ff       	call   0x406e35
407706:	8b f0                	mov    %eax,%esi
407708:	85 f6                	test   %esi,%esi
40770a:	0f 88 81 00 00 00    	js     0x407791
407710:	6a 7b                	push   $0x7b
407712:	58                   	pop    %eax
407713:	66 3b 85 f8 df ff ff 	cmp    -0x2008(%ebp),%ax
40771a:	75 70                	jne    0x40778c
40771c:	83 7d 0c 00          	cmpl   $0x0,0xc(%ebp)
407720:	8b cf                	mov    %edi,%ecx
407722:	6a 00                	push   $0x0
407724:	74 3b                	je     0x407761
407726:	ff 75 0c             	push   0xc(%ebp)
407729:	8b 07                	mov    (%edi),%eax
40772b:	89 85 f0 df ff ff    	mov    %eax,-0x2010(%ebp)
407731:	8d 85 f8 df ff ff    	lea    -0x2008(%ebp),%eax
407737:	53                   	push   %ebx
407738:	50                   	push   %eax
407739:	e8 51 f8 ff ff       	call   0x406f8f
40773e:	8b f0                	mov    %eax,%esi
407740:	85 f6                	test   %esi,%esi
407742:	79 32                	jns    0x407776
407744:	8b 85 f0 df ff ff    	mov    -0x2010(%ebp),%eax
40774a:	8b cf                	mov    %edi,%ecx
40774c:	6a 00                	push   $0x0
40774e:	6a 00                	push   $0x0
407750:	89 07                	mov    %eax,(%edi)
407752:	8d 85 f8 df ff ff    	lea    -0x2008(%ebp),%eax
407758:	53                   	push   %ebx
407759:	50                   	push   %eax
40775a:	e8 30 f8 ff ff       	call   0x406f8f
40775f:	eb 30                	jmp    0x407791
407761:	6a 00                	push   $0x0
407763:	53                   	push   %ebx
407764:	8d 85 f8 df ff ff    	lea    -0x2008(%ebp),%eax
40776a:	50                   	push   %eax
40776b:	e8 1f f8 ff ff       	call   0x406f8f
407770:	8b f0                	mov    %eax,%esi
407772:	85 f6                	test   %esi,%esi
407774:	78 1b                	js     0x407791
407776:	8b cf                	mov    %edi,%ecx
407778:	e8 b5 fe ff ff       	call   0x407632
40777d:	8b 07                	mov    (%edi),%eax
40777f:	33 c9                	xor    %ecx,%ecx
407781:	66 3b 08             	cmp    (%eax),%cx
407784:	0f 85 23 ff ff ff    	jne    0x4076ad
40778a:	eb 05                	jmp    0x407791
40778c:	be 09 00 02 80       	mov    $0x80020009,%esi
407791:	ff b5 f4 df ff ff    	push   -0x200c(%ebp)
407797:	ff 15 28 f1 40 00    	call   *0x40f128
40779d:	8b c6                	mov    %esi,%eax
40779f:	8b 4d fc             	mov    -0x4(%ebp),%ecx
4077a2:	5f                   	pop    %edi
4077a3:	5e                   	pop    %esi
4077a4:	33 cd                	xor    %ebp,%ecx
4077a6:	5b                   	pop    %ebx
4077a7:	e8 b4 20 00 00       	call   0x409860
4077ac:	c9                   	leave
4077ad:	c2 08 00             	ret    $0x8
4077b0:	68 2c 04 00 00       	push   $0x42c
4077b5:	b8 6c a6 40 00       	mov    $0x40a66c,%eax
4077ba:	e8 ae 26 00 00       	call   0x409e6d
4077bf:	8b 55 10             	mov    0x10(%ebp),%edx
4077c2:	33 f6                	xor    %esi,%esi
4077c4:	8b 45 08             	mov    0x8(%ebp),%eax
4077c7:	8b 5d 0c             	mov    0xc(%ebp),%ebx
4077ca:	89 95 dc fb ff ff    	mov    %edx,-0x424(%ebp)
4077d0:	89 b5 d8 fb ff ff    	mov    %esi,-0x428(%ebp)
4077d6:	89 75 fc             	mov    %esi,-0x4(%ebp)
4077d9:	89 8d cc fb ff ff    	mov    %ecx,-0x434(%ebp)
4077df:	89 b5 c8 fb ff ff    	mov    %esi,-0x438(%ebp)
4077e5:	89 b5 e0 fb ff ff    	mov    %esi,-0x420(%ebp)
4077eb:	6a 02                	push   $0x2
4077ed:	59                   	pop    %ecx
4077ee:	51                   	push   %ecx
4077ef:	56                   	push   %esi
4077f0:	50                   	push   %eax
4077f1:	c6 45 fc 01          	movb   $0x1,-0x4(%ebp)
4077f5:	ff 15 84 f0 40 00    	call   *0x40f084
4077fb:	8b f8                	mov    %eax,%edi
4077fd:	89 bd d4 fb ff ff    	mov    %edi,-0x42c(%ebp)
407803:	85 ff                	test   %edi,%edi
407805:	75 0c                	jne    0x407813
407807:	e8 ea ea ff ff       	call   0x4062f6
40780c:	8b f0                	mov    %eax,%esi
40780e:	e9 32 01 00 00       	jmp    0x407945
407813:	56                   	push   %esi
407814:	53                   	push   %ebx
407815:	ff b5 dc fb ff ff    	push   -0x424(%ebp)
40781b:	57                   	push   %edi
40781c:	ff 15 b0 f0 40 00    	call   *0x40f0b0
407822:	8b d8                	mov    %eax,%ebx
407824:	85 db                	test   %ebx,%ebx
407826:	75 0a                	jne    0x407832
407828:	e8 c9 ea ff ff       	call   0x4062f6
40782d:	e9 0a 01 00 00       	jmp    0x40793c
407832:	53                   	push   %ebx
407833:	57                   	push   %edi
407834:	ff 15 b4 f0 40 00    	call   *0x40f0b4
40783a:	89 85 d0 fb ff ff    	mov    %eax,-0x430(%ebp)
407840:	85 c0                	test   %eax,%eax
407842:	74 e4                	je     0x407828
407844:	53                   	push   %ebx
407845:	57                   	push   %edi
407846:	ff 15 b8 f0 40 00    	call   *0x40f0b8
40784c:	8b d8                	mov    %eax,%ebx
40784e:	89 9d dc fb ff ff    	mov    %ebx,-0x424(%ebp)
407854:	8d 43 01             	lea    0x1(%ebx),%eax
407857:	3b c3                	cmp    %ebx,%eax
407859:	73 2e                	jae    0x407889
40785b:	8d 85 e4 fb ff ff    	lea    -0x41c(%ebp),%eax
407861:	39 85 e0 fb ff ff    	cmp    %eax,-0x420(%ebp)
407867:	74 0b                	je     0x407874
407869:	8d 8d e0 fb ff ff    	lea    -0x420(%ebp),%ecx
40786f:	e8 44 ea ff ff       	call   0x4062b8
407874:	8d 8d d8 fb ff ff    	lea    -0x428(%ebp),%ecx
40787a:	e8 0d ee ff ff       	call   0x40668c
40787f:	b8 0e 00 07 80       	mov    $0x8007000e,%eax
407884:	e9 e2 00 00 00       	jmp    0x40796b
407889:	6a 02                	push   $0x2
40788b:	59                   	pop    %ecx
40788c:	f7 e1                	mul    %ecx
40788e:	88 4d fc             	mov    %cl,-0x4(%ebp)
407891:	3b d6                	cmp    %esi,%edx
407893:	0f 87 da 00 00 00    	ja     0x407973
407899:	72 09                	jb     0x4078a4
40789b:	83 f8 ff             	cmp    $0xffffffff,%eax
40789e:	0f 87 cf 00 00 00    	ja     0x407973
4078a4:	3d 00 04 00 00       	cmp    $0x400,%eax
4078a9:	76 14                	jbe    0x4078bf
4078ab:	50                   	push   %eax
4078ac:	8d 8d e0 fb ff ff    	lea    -0x420(%ebp),%ecx
4078b2:	e8 17 ea ff ff       	call   0x4062ce
4078b7:	8b 85 e0 fb ff ff    	mov    -0x420(%ebp),%eax
4078bd:	eb 0c                	jmp    0x4078cb
4078bf:	8d 85 e4 fb ff ff    	lea    -0x41c(%ebp),%eax
4078c5:	89 85 e0 fb ff ff    	mov    %eax,-0x420(%ebp)
4078cb:	c7 45 fc 01 00 00 00 	movl   $0x1,-0x4(%ebp)
4078d2:	eb 21                	jmp    0x4078f5
4078d4:	b8 da 78 40 00       	mov    $0x4078da,%eax
4078d9:	c3                   	ret
4078da:	8b bd d4 fb ff ff    	mov    -0x42c(%ebp),%edi
4078e0:	33 f6                	xor    %esi,%esi
4078e2:	8b 9d dc fb ff ff    	mov    -0x424(%ebp),%ebx
4078e8:	c7 45 fc 01 00 00 00 	movl   $0x1,-0x4(%ebp)
4078ef:	8b 85 e0 fb ff ff    	mov    -0x420(%ebp),%eax
4078f5:	85 c0                	test   %eax,%eax
4078f7:	75 07                	jne    0x407900
4078f9:	be 0e 00 07 80       	mov    $0x8007000e,%esi
4078fe:	eb 3e                	jmp    0x40793e
407900:	53                   	push   %ebx
407901:	50                   	push   %eax
407902:	53                   	push   %ebx
407903:	ff b5 d0 fb ff ff    	push   -0x430(%ebp)
407909:	56                   	push   %esi
40790a:	6a 03                	push   $0x3
40790c:	ff 15 bc f0 40 00    	call   *0x40f0bc
407912:	8b c8                	mov    %eax,%ecx
407914:	85 c9                	test   %ecx,%ecx
407916:	0f 84 0c ff ff ff    	je     0x407828
40791c:	8b 85 e0 fb ff ff    	mov    -0x420(%ebp),%eax
407922:	33 d2                	xor    %edx,%edx
407924:	ff 75 14             	push   0x14(%ebp)
407927:	66 89 14 48          	mov    %dx,(%eax,%ecx,2)
40792b:	8d 8d c8 fb ff ff    	lea    -0x438(%ebp),%ecx
407931:	ff b5 e0 fb ff ff    	push   -0x420(%ebp)
407937:	e8 23 fd ff ff       	call   0x40765f
40793c:	8b f0                	mov    %eax,%esi
40793e:	57                   	push   %edi
40793f:	ff 15 78 f0 40 00    	call   *0x40f078
407945:	8d 85 e4 fb ff ff    	lea    -0x41c(%ebp),%eax
40794b:	39 85 e0 fb ff ff    	cmp    %eax,-0x420(%ebp)
407951:	74 0b                	je     0x40795e
407953:	8d 8d e0 fb ff ff    	lea    -0x420(%ebp),%ecx
407959:	e8 5a e9 ff ff       	call   0x4062b8
40795e:	8d 8d d8 fb ff ff    	lea    -0x428(%ebp),%ecx
407964:	e8 23 ed ff ff       	call   0x40668c
407969:	8b c6                	mov    %esi,%eax
40796b:	e8 4f 24 00 00       	call   0x409dbf
407970:	c2 10 00             	ret    $0x10
407973:	b9 57 00 07 80       	mov    $0x80070057,%ecx
407978:	e8 cf f1 ff ff       	call   0x406b4c
40797d:	cc                   	int3
40797e:	8b ff                	mov    %edi,%edi
407980:	55                   	push   %ebp
407981:	8b ec                	mov    %esp,%ebp
407983:	81 ec 54 0a 00 00    	sub    $0xa54,%esp
407989:	a1 e4 c1 40 00       	mov    0x40c1e4,%eax
40798e:	33 c5                	xor    %ebp,%eax
407990:	89 45 fc             	mov    %eax,-0x4(%ebp)
407993:	53                   	push   %ebx
407994:	33 c0                	xor    %eax,%eax
407996:	c7 85 ac f5 ff ff 50 	movl   $0x401650,-0xa54(%ebp)
40799d:	16 40 00
4079a0:	56                   	push   %esi
4079a1:	8b 75 0c             	mov    0xc(%ebp),%esi
4079a4:	8b da                	mov    %edx,%ebx
4079a6:	89 85 b0 f5 ff ff    	mov    %eax,-0xa50(%ebp)
4079ac:	89 85 b4 f5 ff ff    	mov    %eax,-0xa4c(%ebp)
4079b2:	89 85 b8 f5 ff ff    	mov    %eax,-0xa48(%ebp)
4079b8:	57                   	push   %edi
4079b9:	8b f9                	mov    %ecx,%edi
4079bb:	85 f6                	test   %esi,%esi
4079bd:	74 1b                	je     0x4079da
4079bf:	eb 13                	jmp    0x4079d4
4079c1:	ff 76 04             	push   0x4(%esi)
4079c4:	50                   	push   %eax
4079c5:	8d 85 ac f5 ff ff    	lea    -0xa54(%ebp),%eax
4079cb:	50                   	push   %eax
4079cc:	e8 8f e8 ff ff       	call   0x406260
4079d1:	8d 76 08             	lea    0x8(%esi),%esi
4079d4:	8b 06                	mov    (%esi),%eax
4079d6:	85 c0                	test   %eax,%eax
4079d8:	75 e7                	jne    0x4079c1
4079da:	8b 07                	mov    (%edi),%eax
4079dc:	8d 8d ac f5 ff ff    	lea    -0xa54(%ebp),%ecx
4079e2:	51                   	push   %ecx
4079e3:	8b 70 14             	mov    0x14(%eax),%esi
4079e6:	8b ce                	mov    %esi,%ecx
4079e8:	ff 15 20 f2 40 00    	call   *0x40f220
4079ee:	8b cf                	mov    %edi,%ecx
4079f0:	ff d6                	call   *%esi
4079f2:	8b f0                	mov    %eax,%esi
4079f4:	85 f6                	test   %esi,%esi
4079f6:	0f 88 34 01 00 00    	js     0x407b30
4079fc:	8b 35 b4 c0 40 00    	mov    0x40c0b4,%esi
407a02:	8d 85 f0 fd ff ff    	lea    -0x210(%ebp),%eax
407a08:	68 04 01 00 00       	push   $0x104
407a0d:	50                   	push   %eax
407a0e:	33 ff                	xor    %edi,%edi
407a10:	56                   	push   %esi
407a11:	89 bd c4 f5 ff ff    	mov    %edi,-0xa3c(%ebp)
407a17:	ff 15 ac f0 40 00    	call   *0x40f0ac
407a1d:	85 c0                	test   %eax,%eax
407a1f:	75 0c                	jne    0x407a2d
407a21:	e8 d0 e8 ff ff       	call   0x4062f6
407a26:	8b f0                	mov    %eax,%esi
407a28:	e9 f8 00 00 00       	jmp    0x407b25
407a2d:	3d 04 01 00 00       	cmp    $0x104,%eax
407a32:	75 15                	jne    0x407a49
407a34:	8d 8d c4 f5 ff ff    	lea    -0xa3c(%ebp),%ecx
407a3a:	e8 4d ec ff ff       	call   0x40668c
407a3f:	be 7a 00 07 80       	mov    $0x8007007a,%esi
407a44:	e9 e7 00 00 00       	jmp    0x407b30
407a49:	8d 85 f0 fd ff ff    	lea    -0x210(%ebp),%eax
407a4f:	ba 08 02 00 00       	mov    $0x208,%edx
407a54:	50                   	push   %eax
407a55:	8d 8d c8 f5 ff ff    	lea    -0xa38(%ebp),%ecx
407a5b:	e8 76 e5 ff ff       	call   0x405fd6
407a60:	85 f6                	test   %esi,%esi
407a62:	74 13                	je     0x407a77
407a64:	57                   	push   %edi
407a65:	ff 15 88 f0 40 00    	call   *0x40f088
407a6b:	3b f0                	cmp    %eax,%esi
407a6d:	74 08                	je     0x407a77
407a6f:	8d 85 c8 f5 ff ff    	lea    -0xa38(%ebp),%eax
407a75:	eb 78                	jmp    0x407aef
407a77:	6a 22                	push   $0x22
407a79:	5e                   	pop    %esi
407a7a:	8d 85 c8 f5 ff ff    	lea    -0xa38(%ebp),%eax
407a80:	66 89 b5 d8 f9 ff ff 	mov    %si,-0x628(%ebp)
407a87:	50                   	push   %eax
407a88:	8d 8d da f9 ff ff    	lea    -0x626(%ebp),%ecx
407a8e:	e8 91 e5 ff ff       	call   0x406024
407a93:	84 c0                	test   %al,%al
407a95:	75 15                	jne    0x407aac
407a97:	8d 8d c4 f5 ff ff    	lea    -0xa3c(%ebp),%ecx
407a9d:	e8 ea eb ff ff       	call   0x40668c
407aa2:	be 05 40 00 80       	mov    $0x80004005,%esi
407aa7:	e9 84 00 00 00       	jmp    0x407b30
407aac:	8d 8d d8 f9 ff ff    	lea    -0x628(%ebp),%ecx
407ab2:	8d 51 02             	lea    0x2(%ecx),%edx
407ab5:	66 8b 01             	mov    (%ecx),%ax
407ab8:	83 c1 02             	add    $0x2,%ecx
407abb:	66 3b c7             	cmp    %di,%ax
407abe:	75 f5                	jne    0x407ab5
407ac0:	2b ca                	sub    %edx,%ecx
407ac2:	d1 f9                	sar    $1,%ecx
407ac4:	66 89 b4 4d d8 f9 ff 	mov    %si,-0x628(%ebp,%ecx,2)
407acb:	ff
407acc:	8d 0c 4d 02 00 00 00 	lea    0x2(,%ecx,2),%ecx
407ad3:	81 f9 18 04 00 00    	cmp    $0x418,%ecx