46d716:	8b 4e 08             	mov    0x8(%esi),%ecx
46d719:	8d 85 d4 fd ff ff    	lea    -0x22c(%ebp),%eax
46d71f:	50                   	push   %eax
46d720:	ba 04 01 00 00       	mov    $0x104,%edx
46d725:	8b 09                	mov    (%ecx),%ecx
46d727:	e8 7e 71 ff ff       	call   0x4648aa
46d72c:	8d 85 d4 fd ff ff    	lea    -0x22c(%ebp),%eax
46d732:	50                   	push   %eax
46d733:	e8 04 57 fb ff       	call   0x422e3c
46d738:	59                   	pop    %ecx
46d739:	59                   	pop    %ecx
46d73a:	33 c9                	xor    %ecx,%ecx
46d73c:	c7 45 e4 03 00 00 00 	movl   $0x3,-0x1c(%ebp)
46d743:	66 89 8c 45 d6 fd ff 	mov    %cx,-0x22a(%ebp,%eax,2)
46d74a:	ff
46d74b:	33 ff                	xor    %edi,%edi
46d74d:	8d 85 d4 fd ff ff    	lea    -0x22c(%ebp),%eax
46d753:	89 7d f6             	mov    %edi,-0xa(%ebp)
46d756:	6a 54                	push   $0x54
46d758:	89 45 e8             	mov    %eax,-0x18(%ebp)
46d75b:	58                   	pop    %eax
46d75c:	66 89 45 f0          	mov    %ax,-0x10(%ebp)
46d760:	8d 45 e0             	lea    -0x20(%ebp),%eax
46d763:	50                   	push   %eax
46d764:	89 7d fa             	mov    %edi,-0x6(%ebp)
46d767:	89 7d f2             	mov    %edi,-0xe(%ebp)
46d76a:	89 7d e0             	mov    %edi,-0x20(%ebp)
46d76d:	89 7d ec             	mov    %edi,-0x14(%ebp)
46d770:	ff 15 b4 f4 48 00    	call   *0x48f4b4
46d776:	85 c0                	test   %eax,%eax
46d778:	74 13                	je     0x46d78d
46d77a:	8b 75 0c             	mov    0xc(%ebp),%esi
46d77d:	8b ce                	mov    %esi,%ecx
46d77f:	e8 9c c2 f9 ff       	call   0x409a20
46d784:	c7 46 0c 01 00 00 00 	movl   $0x1,0xc(%esi)
46d78b:	89 3e                	mov    %edi,(%esi)
46d78d:	5f                   	pop    %edi
46d78e:	33 c0                	xor    %eax,%eax
46d790:	5e                   	pop    %esi
46d791:	8b e5                	mov    %ebp,%esp
46d793:	5d                   	pop    %ebp
46d794:	c2 08 00             	ret    $0x8
46d797:	55                   	push   %ebp
46d798:	8b ec                	mov    %esp,%ebp
46d79a:	8b 4d 08             	mov    0x8(%ebp),%ecx
46d79d:	33 c0                	xor    %eax,%eax
46d79f:	56                   	push   %esi
46d7a0:	39 41 08             	cmp    %eax,0x8(%ecx)
46d7a3:	74 11                	je     0x46d7b6
46d7a5:	8b 41 04             	mov    0x4(%ecx),%eax
46d7a8:	8b 30                	mov    (%eax),%esi
46d7aa:	8b ce                	mov    %esi,%ecx
46d7ac:	e8 e6 c1 f9 ff       	call   0x409997
46d7b1:	8b 46 08             	mov    0x8(%esi),%eax
46d7b4:	8b 00                	mov    (%eax),%eax
46d7b6:	6a 07                	push   $0x7
46d7b8:	50                   	push   %eax
46d7b9:	6a 00                	push   $0x0
46d7bb:	ff 15 98 f4 48 00    	call   *0x48f498
46d7c1:	85 c0                	test   %eax,%eax
46d7c3:	74 14                	je     0x46d7d9
46d7c5:	8b 75 0c             	mov    0xc(%ebp),%esi
46d7c8:	8b ce                	mov    %esi,%ecx
46d7ca:	e8 51 c2 f9 ff       	call   0x409a20
46d7cf:	83 26 00             	andl   $0x0,(%esi)
46d7d2:	c7 46 0c 01 00 00 00 	movl   $0x1,0xc(%esi)
46d7d9:	33 c0                	xor    %eax,%eax
46d7db:	5e                   	pop    %esi
46d7dc:	5d                   	pop    %ebp
46d7dd:	c2 08 00             	ret    $0x8
46d7e0:	55                   	push   %ebp
46d7e1:	8b ec                	mov    %esp,%ebp
46d7e3:	8b 45 08             	mov    0x8(%ebp),%eax
46d7e6:	6a 00                	push   $0x0
46d7e8:	ff 70 08             	push   0x8(%eax)
46d7eb:	ff 75 0c             	push   0xc(%ebp)
46d7ee:	50                   	push   %eax
46d7ef:	e8 9a 15 00 00       	call   0x46ed8e
46d7f4:	5d                   	pop    %ebp
46d7f5:	c2 08 00             	ret    $0x8
46d7f8:	55                   	push   %ebp
46d7f9:	8b ec                	mov    %esp,%ebp
46d7fb:	81 ec 50 02 00 00    	sub    $0x250,%esp
46d801:	8b 45 08             	mov    0x8(%ebp),%eax
46d804:	53                   	push   %ebx
46d805:	8b d9                	mov    %ecx,%ebx
46d807:	56                   	push   %esi
46d808:	8b 48 08             	mov    0x8(%eax),%ecx
46d80b:	8b 40 04             	mov    0x4(%eax),%eax
46d80e:	89 4d f0             	mov    %ecx,-0x10(%ebp)
46d811:	33 c9                	xor    %ecx,%ecx
46d813:	89 4d f4             	mov    %ecx,-0xc(%ebp)
46d816:	57                   	push   %edi
46d817:	8b 30                	mov    (%eax),%esi
46d819:	bf 00 02 00 00       	mov    $0x200,%edi
46d81e:	8b ce                	mov    %esi,%ecx
46d820:	e8 72 c1 f9 ff       	call   0x409997
46d825:	8b 46 08             	mov    0x8(%esi),%eax
46d828:	8b 00                	mov    (%eax),%eax
46d82a:	89 45 e8             	mov    %eax,-0x18(%ebp)
46d82d:	8b 45 08             	mov    0x8(%ebp),%eax
46d830:	8b 40 04             	mov    0x4(%eax),%eax
46d833:	8b 70 04             	mov    0x4(%eax),%esi
46d836:	8b ce                	mov    %esi,%ecx
46d838:	e8 5a c1 f9 ff       	call   0x409997
46d83d:	8b 46 08             	mov    0x8(%esi),%eax
46d840:	8b 4d 0c             	mov    0xc(%ebp),%ecx
46d843:	68 10 f9 48 00       	push   $0x48f910
46d848:	8b 00                	mov    (%eax),%eax
46d84a:	89 45 ec             	mov    %eax,-0x14(%ebp)
46d84d:	e8 a6 c3 f9 ff       	call   0x409bf8
46d852:	33 c0                	xor    %eax,%eax
46d854:	50                   	push   %eax
46d855:	ff 15 60 f8 48 00    	call   *0x48f860
46d85b:	83 7d f0 03          	cmpl   $0x3,-0x10(%ebp)
46d85f:	8b 75 08             	mov    0x8(%ebp),%esi
46d862:	72 36                	jb     0x46d89a
46d864:	8b 46 04             	mov    0x4(%esi),%eax
46d867:	8b 48 08             	mov    0x8(%eax),%ecx
46d86a:	e8 2d c4 f9 ff       	call   0x409c9c
46d86f:	a8 01                	test   $0x1,%al
46d871:	74 03                	je     0x46d876
46d873:	6a 40                	push   $0x40
46d875:	5f                   	pop    %edi
46d876:	8b 46 04             	mov    0x4(%esi),%eax
46d879:	8b 48 08             	mov    0x8(%eax),%ecx
46d87c:	e8 1b c4 f9 ff       	call   0x409c9c
46d881:	a8 02                	test   $0x2,%al
46d883:	74 03                	je     0x46d888
46d885:	83 cf 40             	or     $0x40,%edi
46d888:	8b 46 04             	mov    0x4(%esi),%eax
46d88b:	8b 48 08             	mov    0x8(%eax),%ecx
46d88e:	e8 09 c4 f9 ff       	call   0x409c9c
46d893:	a8 04                	test   $0x4,%al
46d895:	74 03                	je     0x46d89a
46d897:	83 cf 10             	or     $0x10,%edi
46d89a:	8d 4d d8             	lea    -0x28(%ebp),%ecx
46d89d:	e8 25 9f f9 ff       	call   0x4077c7
46d8a2:	8b 45 f0             	mov    -0x10(%ebp),%eax
46d8a5:	83 f8 04             	cmp    $0x4,%eax
46d8a8:	72 1d                	jb     0x46d8c7
46d8aa:	8b 46 04             	mov    0x4(%esi),%eax
46d8ad:	8b 70 0c             	mov    0xc(%eax),%esi
46d8b0:	8b ce                	mov    %esi,%ecx
46d8b2:	e8 e0 c0 f9 ff       	call   0x409997
46d8b7:	8b 46 08             	mov    0x8(%esi),%eax
46d8ba:	8d 4d d8             	lea    -0x28(%ebp),%ecx
46d8bd:	ff 30                	push   (%eax)
46d8bf:	e8 68 a4 f9 ff       	call   0x407d2c
46d8c4:	8b 45 f0             	mov    -0x10(%ebp),%eax
46d8c7:	83 f8 05             	cmp    $0x5,%eax
46d8ca:	72 11                	jb     0x46d8dd
46d8cc:	8b 45 08             	mov    0x8(%ebp),%eax
46d8cf:	8b 40 04             	mov    0x4(%eax),%eax
46d8d2:	8b 48 10             	mov    0x10(%eax),%ecx
46d8d5:	e8 e1 b0 ff ff       	call   0x4689bb
46d8da:	89 45 f4             	mov    %eax,-0xc(%ebp)
46d8dd:	33 c9                	xor    %ecx,%ecx
46d8df:	8d 45 f8             	lea    -0x8(%ebp),%eax
46d8e2:	50                   	push   %eax
46d8e3:	51                   	push   %ecx
46d8e4:	51                   	push   %ecx
46d8e5:	89 4d f8             	mov    %ecx,-0x8(%ebp)
46d8e8:	ff 15 ac f4 48 00    	call   *0x48f4ac
46d8ee:	8b 75 ec             	mov    -0x14(%ebp),%esi
46d8f1:	33 c0                	xor    %eax,%eax
46d8f3:	66 39 06             	cmp    %ax,(%esi)
46d8f6:	74 3d                	je     0x46d935
46d8f8:	8d 45 08             	lea    0x8(%ebp),%eax
46d8fb:	50                   	push   %eax
46d8fc:	ff 15 a8 f4 48 00    	call   *0x48f4a8
46d902:	85 c0                	test   %eax,%eax
46d904:	75 2f                	jne    0x46d935
46d906:	8b ce                	mov    %esi,%ecx
46d908:	e8 b9 25 fb ff       	call   0x41fec6
46d90d:	8b 4d 08             	mov    0x8(%ebp),%ecx
46d910:	8b f0                	mov    %eax,%esi
46d912:	33 c0                	xor    %eax,%eax
46d914:	50                   	push   %eax
46d915:	8d 45 f8             	lea    -0x8(%ebp),%eax
46d918:	8b 11                	mov    (%ecx),%edx
46d91a:	50                   	push   %eax
46d91b:	33 c0                	xor    %eax,%eax
46d91d:	50                   	push   %eax
46d91e:	56                   	push   %esi
46d91f:	50                   	push   %eax
46d920:	50                   	push   %eax
46d921:	51                   	push   %ecx
46d922:	ff 52 0c             	call   *0xc(%edx)
46d925:	56                   	push   %esi
46d926:	e8 41 37 fb ff       	call   0x42106c
46d92b:	8b 45 08             	mov    0x8(%ebp),%eax
46d92e:	59                   	pop    %ecx
46d92f:	50                   	push   %eax
46d930:	8b 08                	mov    (%eax),%ecx
46d932:	ff 51 08             	call   *0x8(%ecx)
46d935:	8d 45 fc             	lea    -0x4(%ebp),%eax
46d938:	50                   	push   %eax
46d939:	68 9c a8 4b 00       	push   $0x4ba89c
46d93e:	6a 01                	push   $0x1
46d940:	33 c0                	xor    %eax,%eax
46d942:	50                   	push   %eax
46d943:	68 7c 2d 49 00       	push   $0x492d7c
46d948:	ff 15 48 f8 48 00    	call   *0x48f848
46d94e:	8b 35 2c f8 48 00    	mov    0x48f82c,%esi
46d954:	85 c0                	test   %eax,%eax
46d956:	0f 88 da 00 00 00    	js     0x46da36
46d95c:	8b 03                	mov    (%ebx),%eax
46d95e:	33 ff                	xor    %edi,%edi
46d960:	57                   	push   %edi
46d961:	6a 01                	push   $0x1
46d963:	8b 48 04             	mov    0x4(%eax),%ecx
46d966:	03 cb                	add    %ebx,%ecx
46d968:	e8 36 91 fe ff       	call   0x456aa3
46d96d:	8b 45 fc             	mov    -0x4(%ebp),%eax
46d970:	8d 55 ec             	lea    -0x14(%ebp),%edx
46d973:	89 7d 08             	mov    %edi,0x8(%ebp)
46d976:	52                   	push   %edx
46d977:	50                   	push   %eax
46d978:	8b 08                	mov    (%eax),%ecx
46d97a:	ff 51 28             	call   *0x28(%ecx)
46d97d:	85 c0                	test   %eax,%eax
46d97f:	0f 88 a3 00 00 00    	js     0x46da28
46d985:	8b 4d fc             	mov    -0x4(%ebp),%ecx
46d988:	8b 45 ec             	mov    -0x14(%ebp),%eax
46d98b:	83 c8 20             	or     $0x20,%eax
46d98e:	50                   	push   %eax
46d98f:	8b 11                	mov    (%ecx),%edx
46d991:	51                   	push   %ecx
46d992:	ff 52 24             	call   *0x24(%edx)
46d995:	8b 45 fc             	mov    -0x4(%ebp),%eax
46d998:	ff 75 d8             	push   -0x28(%ebp)
46d99b:	50                   	push   %eax
46d99c:	8b 08                	mov    (%eax),%ecx
46d99e:	ff 51 3c             	call   *0x3c(%ecx)
46d9a1:	8b 45 fc             	mov    -0x4(%ebp),%eax
46d9a4:	8b 55 e8             	mov    -0x18(%ebp),%edx
46d9a7:	52                   	push   %edx
46d9a8:	50                   	push   %eax
46d9a9:	8b 08                	mov    (%eax),%ecx
46d9ab:	ff 51 44             	call   *0x44(%ecx)
46d9ae:	8d 45 f0             	lea    -0x10(%ebp),%eax
46d9b1:	50                   	push   %eax
46d9b2:	ff 75 f8             	push   -0x8(%ebp)
46d9b5:	57                   	push   %edi
46d9b6:	57                   	push   %edi
46d9b7:	ff 15 a4 f4 48 00    	call   *0x48f4a4
46d9bd:	8b 45 fc             	mov    -0x4(%ebp),%eax
46d9c0:	ff 75 f0             	push   -0x10(%ebp)
46d9c3:	50                   	push   %eax
46d9c4:	8b 08                	mov    (%eax),%ecx
46d9c6:	ff 51 30             	call   *0x30(%ecx)
46d9c9:	8b 45 fc             	mov    -0x4(%ebp),%eax
46d9cc:	8b 55 f4             	mov    -0xc(%ebp),%edx
46d9cf:	52                   	push   %edx
46d9d0:	50                   	push   %eax
46d9d1:	8b 08                	mov    (%eax),%ecx
46d9d3:	ff 51 0c             	call   *0xc(%ecx)
46d9d6:	85 c0                	test   %eax,%eax
46d9d8:	78 4e                	js     0x46da28
46d9da:	8b 45 fc             	mov    -0x4(%ebp),%eax
46d9dd:	8d 55 f4             	lea    -0xc(%ebp),%edx
46d9e0:	52                   	push   %edx
46d9e1:	50                   	push   %eax
46d9e2:	8b 08                	mov    (%eax),%ecx
46d9e4:	ff 51 50             	call   *0x50(%ecx)
46d9e7:	85 c0                	test   %eax,%eax
46d9e9:	78 3d                	js     0x46da28
46d9eb:	8b 45 f4             	mov    -0xc(%ebp),%eax
46d9ee:	8d 4d 08             	lea    0x8(%ebp),%ecx
46d9f1:	51                   	push   %ecx
46d9f2:	68 00 80 02 80       	push   $0x80028000
46d9f7:	50                   	push   %eax
46d9f8:	8b 10                	mov    (%eax),%edx
46d9fa:	ff 52 14             	call   *0x14(%edx)
46d9fd:	85 c0                	test   %eax,%eax
46d9ff:	78 1e                	js     0x46da1f
46da01:	ff 75 08             	push   0x8(%ebp)
46da04:	8b 4d 0c             	mov    0xc(%ebp),%ecx
46da07:	e8 ec c1 f9 ff       	call   0x409bf8
46da0c:	ff 75 08             	push   0x8(%ebp)
46da0f:	ff d6                	call   *%esi
46da11:	8b 03                	mov    (%ebx),%eax
46da13:	57                   	push   %edi
46da14:	57                   	push   %edi
46da15:	8b 48 04             	mov    0x4(%eax),%ecx
46da18:	03 cb                	add    %ebx,%ecx
46da1a:	e8 84 90 fe ff       	call   0x456aa3
46da1f:	8b 45 f4             	mov    -0xc(%ebp),%eax
46da22:	50                   	push   %eax
46da23:	8b 08                	mov    (%eax),%ecx
46da25:	ff 51 08             	call   *0x8(%ecx)
46da28:	8b 45 fc             	mov    -0x4(%ebp),%eax
46da2b:	50                   	push   %eax
46da2c:	8b 08                	mov    (%eax),%ecx
46da2e:	ff 51 08             	call   *0x8(%ecx)
46da31:	e9 aa 00 00 00       	jmp    0x46dae0
46da36:	33 c0                	xor    %eax,%eax
46da38:	68 06 02 00 00       	push   $0x206
46da3d:	50                   	push   %eax
46da3e:	66 89 85 b0 fd ff ff 	mov    %ax,-0x250(%ebp)
46da45:	8d 85 b2 fd ff ff    	lea    -0x24e(%ebp),%eax
46da4b:	50                   	push   %eax
46da4c:	e8 cf 55 fb ff       	call   0x423020
46da51:	8b 45 f8             	mov    -0x8(%ebp),%eax
46da54:	83 c4 0c             	add    $0xc,%esp
46da57:	8b 55 f4             	mov    -0xc(%ebp),%edx
46da5a:	89 45 bc             	mov    %eax,-0x44(%ebp)
46da5d:	8d 85 b0 fd ff ff    	lea    -0x250(%ebp),%eax
46da63:	89 45 c0             	mov    %eax,-0x40(%ebp)
46da66:	8b 45 d8             	mov    -0x28(%ebp),%eax
46da69:	89 45 d0             	mov    %eax,-0x30(%ebp)
46da6c:	33 c0                	xor    %eax,%eax
46da6e:	89 45 d4             	mov    %eax,-0x2c(%ebp)
46da71:	8d 45 b8             	lea    -0x48(%ebp),%eax
46da74:	89 55 b8             	mov    %edx,-0x48(%ebp)
46da77:	8b 55 e8             	mov    -0x18(%ebp),%edx
46da7a:	50                   	push   %eax
46da7b:	89 55 c4             	mov    %edx,-0x3c(%ebp)
46da7e:	c7 45 cc 33 a4 46 00 	movl   $0x46a433,-0x34(%ebp)
46da85:	89 7d c8             	mov    %edi,-0x38(%ebp)
46da88:	ff 15 a0 f4 48 00    	call   *0x48f4a0
46da8e:	8b f8                	mov    %eax,%edi
46da90:	85 ff                	test   %edi,%edi
46da92:	74 3b                	je     0x46dacf
46da94:	8b 4d 0c             	mov    0xc(%ebp),%ecx
46da97:	8d 85 b0 fd ff ff    	lea    -0x250(%ebp),%eax
46da9d:	50                   	push   %eax
46da9e:	e8 55 c1 f9 ff       	call   0x409bf8
46daa3:	8d 85 b0 fd ff ff    	lea    -0x250(%ebp),%eax
46daa9:	50                   	push   %eax
46daaa:	57                   	push   %edi
46daab:	ff 15 9c f4 48 00    	call   *0x48f49c
46dab1:	57                   	push   %edi
46dab2:	ff d6                	call   *%esi
46dab4:	66 83 bd b0 fd ff ff 	cmpw   $0x0,-0x250(%ebp)
46dabb:	00
46dabc:	74 22                	je     0x46dae0
46dabe:	8b 4d 0c             	mov    0xc(%ebp),%ecx
46dac1:	8d 85 b0 fd ff ff    	lea    -0x250(%ebp),%eax
46dac7:	50                   	push   %eax
46dac8:	e8 2b c1 f9 ff       	call   0x409bf8
46dacd:	eb 11                	jmp    0x46dae0
46dacf:	33 c0                	xor    %eax,%eax
46dad1:	50                   	push   %eax
46dad2:	8b 03                	mov    (%ebx),%eax
46dad4:	6a 01                	push   $0x1
46dad6:	8b 48 04             	mov    0x4(%eax),%ecx
46dad9:	03 cb                	add    %ebx,%ecx
46dadb:	e8 c3 8f fe ff       	call   0x456aa3