405735:	8b df                	mov    %edi,%ebx
405737:	66 85 c9             	test   %cx,%cx
40573a:	74 2a                	je     0x405766
40573c:	0f b7 d1             	movzwl %cx,%edx
40573f:	66 83 fa 2e          	cmp    $0x2e,%dx
405743:	74 0a                	je     0x40574f
405745:	66 83 fa 5c          	cmp    $0x5c,%dx
405749:	75 06                	jne    0x405751
40574b:	8b df                	mov    %edi,%ebx
40574d:	eb 02                	jmp    0x405751
40574f:	8b d8                	mov    %eax,%ebx
405751:	50                   	push   %eax
405752:	ff 15 f8 f0 40 00    	call   *0x40f0f8
405758:	0f b7 08             	movzwl (%eax),%ecx
40575b:	8b d1                	mov    %ecx,%edx
40575d:	66 85 c9             	test   %cx,%cx
405760:	75 dd                	jne    0x40573f
405762:	85 db                	test   %ebx,%ebx
405764:	75 02                	jne    0x405768
405766:	8b d8                	mov    %eax,%ebx
405768:	56                   	push   %esi
405769:	8d 85 d4 fd ff ff    	lea    -0x22c(%ebp),%eax
40576f:	50                   	push   %eax
405770:	ff 15 dc f0 40 00    	call   *0x40f0dc
405776:	8b f0                	mov    %eax,%esi
405778:	85 f6                	test   %esi,%esi
40577a:	79 5f                	jns    0x4057db
40577c:	be d8 24 40 00       	mov    $0x4024d8,%esi
405781:	8d 85 d4 fd ff ff    	lea    -0x22c(%ebp),%eax
405787:	8d 7d f0             	lea    -0x10(%ebp),%edi
40578a:	8b cb                	mov    %ebx,%ecx
40578c:	2b c8                	sub    %eax,%ecx
40578e:	d1 f9                	sar    $1,%ecx
405790:	a5                   	movsl  %ds:(%esi),%es:(%edi)
405791:	8d 41 05             	lea    0x5(%ecx),%eax
405794:	a5                   	movsl  %ds:(%esi),%es:(%edi)
405795:	66 a5                	movsw  %ds:(%esi),%es:(%edi)
405797:	3d 04 01 00 00       	cmp    $0x104,%eax
40579c:	76 07                	jbe    0x4057a5
40579e:	be 05 40 00 80       	mov    $0x80004005,%esi
4057a3:	eb 54                	jmp    0x4057f9
4057a5:	8d 45 f0             	lea    -0x10(%ebp),%eax
4057a8:	50                   	push   %eax
4057a9:	b8 0e 01 00 00       	mov    $0x10e,%eax
4057ae:	2b c1                	sub    %ecx,%eax
4057b0:	50                   	push   %eax
4057b1:	53                   	push   %ebx
4057b2:	ff 15 e8 f1 40 00    	call   *0x40f1e8
4057b8:	83 c4 0c             	add    $0xc,%esp
4057bb:	8b c8                	mov    %eax,%ecx
4057bd:	e8 a7 13 00 00       	call   0x406b69
4057c2:	ff b5 d0 fd ff ff    	push   -0x230(%ebp)
4057c8:	8d 85 d4 fd ff ff    	lea    -0x22c(%ebp),%eax
4057ce:	50                   	push   %eax
4057cf:	ff 15 dc f0 40 00    	call   *0x40f0dc
4057d5:	8b f0                	mov    %eax,%esi
4057d7:	85 f6                	test   %esi,%esi
4057d9:	78 1e                	js     0x4057f9
4057db:	8d 85 d4 fd ff ff    	lea    -0x22c(%ebp),%eax
4057e1:	50                   	push   %eax
4057e2:	ff 15 d8 f0 40 00    	call   *0x40f0d8
4057e8:	8b 8d cc fd ff ff    	mov    -0x234(%ebp),%ecx
4057ee:	89 01                	mov    %eax,(%ecx)
4057f0:	85 c0                	test   %eax,%eax
4057f2:	75 05                	jne    0x4057f9
4057f4:	be 0e 00 07 80       	mov    $0x8007000e,%esi
4057f9:	8d 8d c8 fd ff ff    	lea    -0x238(%ebp),%ecx
4057ff:	e8 88 0e 00 00       	call   0x40668c
405804:	5f                   	pop    %edi
405805:	8b c6                	mov    %esi,%eax
405807:	5b                   	pop    %ebx
405808:	eb 05                	jmp    0x40580f
40580a:	b8 03 40 00 80       	mov    $0x80004003,%eax
40580f:	8b 4d fc             	mov    -0x4(%ebp),%ecx
405812:	33 cd                	xor    %ebp,%ecx
405814:	5e                   	pop    %esi
405815:	e8 46 40 00 00       	call   0x409860
40581a:	c9                   	leave
40581b:	c2 08 00             	ret    $0x8
40581e:	8b ff                	mov    %edi,%edi
405820:	55                   	push   %ebp
405821:	8b ec                	mov    %esp,%ebp
405823:	83 ec 0c             	sub    $0xc,%esp
405826:	83 65 f4 00          	andl   $0x0,-0xc(%ebp)
40582a:	8d 45 fc             	lea    -0x4(%ebp),%eax
40582d:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
405831:	56                   	push   %esi
405832:	57                   	push   %edi
405833:	50                   	push   %eax
405834:	8d 45 f4             	lea    -0xc(%ebp),%eax
405837:	50                   	push   %eax
405838:	e8 73 fe ff ff       	call   0x4056b0
40583d:	8b f8                	mov    %eax,%edi
40583f:	85 ff                	test   %edi,%edi
405841:	78 4f                	js     0x405892
405843:	8b 45 fc             	mov    -0x4(%ebp),%eax
405846:	8d 55 f8             	lea    -0x8(%ebp),%edx
405849:	52                   	push   %edx
40584a:	50                   	push   %eax
40584b:	8b 08                	mov    (%eax),%ecx
40584d:	8b 71 1c             	mov    0x1c(%ecx),%esi
405850:	8b ce                	mov    %esi,%ecx
405852:	ff 15 20 f2 40 00    	call   *0x40f220
405858:	ff d6                	call   *%esi
40585a:	8b f8                	mov    %eax,%edi
40585c:	85 ff                	test   %edi,%edi
40585e:	78 32                	js     0x405892
405860:	8b 4d f8             	mov    -0x8(%ebp),%ecx
405863:	ff 71 14             	push   0x14(%ecx)
405866:	0f b7 41 1a          	movzwl 0x1a(%ecx),%eax
40586a:	ff 71 10             	push   0x10(%ecx)
40586d:	50                   	push   %eax
40586e:	0f b7 41 18          	movzwl 0x18(%ecx),%eax
405872:	50                   	push   %eax
405873:	51                   	push   %ecx
405874:	ff 15 cc f0 40 00    	call   *0x40f0cc
40587a:	ff 75 f8             	push   -0x8(%ebp)
40587d:	8b f8                	mov    %eax,%edi
40587f:	8b 45 fc             	mov    -0x4(%ebp),%eax
405882:	50                   	push   %eax
405883:	8b 08                	mov    (%eax),%ecx
405885:	8b 71 30             	mov    0x30(%ecx),%esi
405888:	8b ce                	mov    %esi,%ecx
40588a:	ff 15 20 f2 40 00    	call   *0x40f220
405890:	ff d6                	call   *%esi
405892:	8b 45 fc             	mov    -0x4(%ebp),%eax
405895:	85 c0                	test   %eax,%eax
405897:	74 10                	je     0x4058a9
405899:	8b 08                	mov    (%eax),%ecx
40589b:	50                   	push   %eax
40589c:	8b 71 08             	mov    0x8(%ecx),%esi
40589f:	8b ce                	mov    %esi,%ecx
4058a1:	ff 15 20 f2 40 00    	call   *0x40f220
4058a7:	ff d6                	call   *%esi
4058a9:	ff 75 f4             	push   -0xc(%ebp)
4058ac:	ff 15 d0 f0 40 00    	call   *0x40f0d0
4058b2:	8b c7                	mov    %edi,%eax
4058b4:	5f                   	pop    %edi
4058b5:	5e                   	pop    %esi
4058b6:	c9                   	leave
4058b7:	c3                   	ret
4058b8:	8b ff                	mov    %edi,%edi
4058ba:	53                   	push   %ebx
4058bb:	8b dc                	mov    %esp,%ebx
4058bd:	51                   	push   %ecx
4058be:	51                   	push   %ecx
4058bf:	83 e4 f8             	and    $0xfffffff8,%esp
4058c2:	83 c4 04             	add    $0x4,%esp
4058c5:	55                   	push   %ebp
4058c6:	8b 6b 04             	mov    0x4(%ebx),%ebp
4058c9:	89 6c 24 04          	mov    %ebp,0x4(%esp)
4058cd:	8b ec                	mov    %esp,%ebp
4058cf:	51                   	push   %ecx
4058d0:	51                   	push   %ecx
4058d1:	56                   	push   %esi
4058d2:	57                   	push   %edi
4058d3:	8b 79 2c             	mov    0x2c(%ecx),%edi
4058d6:	85 ff                	test   %edi,%edi
4058d8:	74 41                	je     0x40591b
4058da:	eb 3a                	jmp    0x405916
4058dc:	8b 77 1c             	mov    0x1c(%edi),%esi
4058df:	8b ce                	mov    %esi,%ecx
4058e1:	6a 00                	push   $0x0
4058e3:	ff 15 20 f2 40 00    	call   *0x40f220
4058e9:	ff d6                	call   *%esi
4058eb:	8b 0f                	mov    (%edi),%ecx
4058ed:	8b d0                	mov    %eax,%edx
4058ef:	e8 3f fa ff ff       	call   0x405333
4058f4:	85 c0                	test   %eax,%eax
4058f6:	0f 88 a0 00 00 00    	js     0x40599c
4058fc:	8b 77 04             	mov    0x4(%edi),%esi
4058ff:	8b ce                	mov    %esi,%ecx
405901:	6a 00                	push   $0x0
405903:	ff 15 20 f2 40 00    	call   *0x40f220
405909:	ff d6                	call   *%esi
40590b:	85 c0                	test   %eax,%eax
40590d:	0f 88 89 00 00 00    	js     0x40599c
405913:	83 c7 24             	add    $0x24,%edi
405916:	83 3f 00             	cmpl   $0x0,(%edi)
405919:	75 c1                	jne    0x4058dc
40591b:	8b 35 ac c5 40 00    	mov    0x40c5ac,%esi
405921:	85 f6                	test   %esi,%esi
405923:	74 0e                	je     0x405933
405925:	8b ce                	mov    %esi,%ecx
405927:	ff 15 20 f2 40 00    	call   *0x40f220
40592d:	ff d6                	call   *%esi
40592f:	85 c0                	test   %eax,%eax
405931:	78 69                	js     0x40599c
405933:	8b 3d f8 c0 40 00    	mov    0x40c0f8,%edi
405939:	33 c0                	xor    %eax,%eax
40593b:	8b 0d fc c0 40 00    	mov    0x40c0fc,%ecx
405941:	3b f9                	cmp    %ecx,%edi
405943:	73 4c                	jae    0x405991
405945:	8b 17                	mov    (%edi),%edx
405947:	89 55 fc             	mov    %edx,-0x4(%ebp)
40594a:	85 d2                	test   %edx,%edx
40594c:	74 38                	je     0x405986
40594e:	8b 72 1c             	mov    0x1c(%edx),%esi
405951:	8b ce                	mov    %esi,%ecx
405953:	6a 00                	push   $0x0
405955:	ff 15 20 f2 40 00    	call   *0x40f220
40595b:	ff d6                	call   *%esi
40595d:	8b 75 fc             	mov    -0x4(%ebp),%esi
405960:	8b d0                	mov    %eax,%edx
405962:	8b 0e                	mov    (%esi),%ecx
405964:	e8 ca f9 ff ff       	call   0x405333
405969:	85 c0                	test   %eax,%eax
40596b:	78 2f                	js     0x40599c
40596d:	8b 76 04             	mov    0x4(%esi),%esi
405970:	8b ce                	mov    %esi,%ecx
405972:	6a 00                	push   $0x0
405974:	ff 15 20 f2 40 00    	call   *0x40f220
40597a:	ff d6                	call   *%esi
40597c:	85 c0                	test   %eax,%eax
40597e:	78 1c                	js     0x40599c
405980:	8b 0d fc c0 40 00    	mov    0x40c0fc,%ecx
405986:	83 c7 04             	add    $0x4,%edi
405989:	3b f9                	cmp    %ecx,%edi
40598b:	72 b8                	jb     0x405945
40598d:	85 c0                	test   %eax,%eax
40598f:	78 0b                	js     0x40599c
405991:	8b 0d f4 c0 40 00    	mov    0x40c0f4,%ecx
405997:	e8 82 fe ff ff       	call   0x40581e
40599c:	5f                   	pop    %edi
40599d:	5e                   	pop    %esi
40599e:	8b e5                	mov    %ebp,%esp
4059a0:	5d                   	pop    %ebp
4059a1:	8b e3                	mov    %ebx,%esp
4059a3:	5b                   	pop    %ebx
4059a4:	c2 08 00             	ret    $0x8
4059a7:	cc                   	int3
4059a8:	cc                   	int3
4059a9:	cc                   	int3
4059aa:	cc                   	int3
4059ab:	cc                   	int3
4059ac:	cc                   	int3
4059ad:	cc                   	int3
4059ae:	cc                   	int3
4059af:	cc                   	int3
4059b0:	c2 04 00             	ret    $0x4
4059b3:	6a 0c                	push   $0xc
4059b5:	68 90 aa 40 00       	push   $0x40aa90
4059ba:	e8 29 48 00 00       	call   0x40a1e8
4059bf:	33 f6                	xor    %esi,%esi
4059c1:	89 75 fc             	mov    %esi,-0x4(%ebp)
4059c4:	51                   	push   %ecx
4059c5:	ff 15 4c f0 40 00    	call   *0x40f04c
4059cb:	eb 1b                	jmp    0x4059e8
4059cd:	8b 45 ec             	mov    -0x14(%ebp),%eax
4059d0:	8b 00                	mov    (%eax),%eax
4059d2:	33 c9                	xor    %ecx,%ecx
4059d4:	81 38 17 00 00 c0    	cmpl   $0xc0000017,(%eax)
4059da:	0f 94 c1             	sete   %cl
4059dd:	8b c1                	mov    %ecx,%eax
4059df:	c3                   	ret
4059e0:	8b 65 e8             	mov    -0x18(%ebp),%esp
4059e3:	be 0e 00 07 80       	mov    $0x8007000e,%esi
4059e8:	89 75 e4             	mov    %esi,-0x1c(%ebp)
4059eb:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
4059f2:	8b c6                	mov    %esi,%eax
4059f4:	8b 4d f0             	mov    -0x10(%ebp),%ecx
4059f7:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
4059fe:	59                   	pop    %ecx
4059ff:	5f                   	pop    %edi
405a00:	5e                   	pop    %esi
405a01:	5b                   	pop    %ebx
405a02:	c9                   	leave
405a03:	c3                   	ret
405a04:	8b ff                	mov    %edi,%edi
405a06:	53                   	push   %ebx
405a07:	8b d9                	mov    %ecx,%ebx
405a09:	57                   	push   %edi
405a0a:	85 db                	test   %ebx,%ebx
405a0c:	74 30                	je     0x405a3e
405a0e:	8b 7b 08             	mov    0x8(%ebx),%edi
405a11:	85 ff                	test   %edi,%edi
405a13:	74 22                	je     0x405a37
405a15:	56                   	push   %esi
405a16:	8b 37                	mov    (%edi),%esi
405a18:	8b ce                	mov    %esi,%ecx
405a1a:	ff 77 04             	push   0x4(%edi)
405a1d:	ff 15 20 f2 40 00    	call   *0x40f220
405a23:	ff d6                	call   *%esi
405a25:	8b 77 08             	mov    0x8(%edi),%esi
405a28:	57                   	push   %edi
405a29:	ff 15 04 f2 40 00    	call   *0x40f204
405a2f:	8b fe                	mov    %esi,%edi
405a31:	59                   	pop    %ecx
405a32:	85 f6                	test   %esi,%esi
405a34:	75 e0                	jne    0x405a16
405a36:	5e                   	pop    %esi
405a37:	83 63 08 00          	andl   $0x0,0x8(%ebx)
405a3b:	5f                   	pop    %edi
405a3c:	5b                   	pop    %ebx
405a3d:	c3                   	ret
405a3e:	b9 05 00 00 c0       	mov    $0xc0000005,%ecx
405a43:	e8 cb 08 00 00       	call   0x406313
405a48:	cc                   	int3
405a49:	8b ff                	mov    %edi,%edi
405a4b:	53                   	push   %ebx
405a4c:	57                   	push   %edi
405a4d:	8b f9                	mov    %ecx,%edi
405a4f:	8d 5f 04             	lea    0x4(%edi),%ebx
405a52:	83 3b 00             	cmpl   $0x0,(%ebx)
405a55:	74 37                	je     0x405a8e
405a57:	83 7f 0c 00          	cmpl   $0x0,0xc(%edi)
405a5b:	74 0b                	je     0x405a68
405a5d:	8b cb                	mov    %ebx,%ecx
405a5f:	e8 a0 ff ff ff       	call   0x405a04
405a64:	83 67 0c 00          	andl   $0x0,0xc(%edi)
405a68:	8b 4f 28             	mov    0x28(%edi),%ecx
405a6b:	85 c9                	test   %ecx,%ecx
405a6d:	74 12                	je     0x405a81
405a6f:	8b 01                	mov    (%ecx),%eax
405a71:	56                   	push   %esi
405a72:	51                   	push   %ecx
405a73:	8b 70 08             	mov    0x8(%eax),%esi
405a76:	8b ce                	mov    %esi,%ecx
405a78:	ff 15 20 f2 40 00    	call   *0x40f220
405a7e:	ff d6                	call   *%esi
405a80:	5e                   	pop    %esi
405a81:	8d 47 10             	lea    0x10(%edi),%eax
405a84:	50                   	push   %eax
405a85:	ff 15 48 f0 40 00    	call   *0x40f048
405a8b:	83 23 00             	andl   $0x0,(%ebx)
405a8e:	5f                   	pop    %edi
405a8f:	5b                   	pop    %ebx
405a90:	c3                   	ret
405a91:	cc                   	int3
405a92:	cc                   	int3
405a93:	cc                   	int3
405a94:	cc                   	int3
405a95:	cc                   	int3
405a96:	cc                   	int3
405a97:	cc                   	int3
405a98:	cc                   	int3
405a99:	cc                   	int3
405a9a:	cc                   	int3
405a9b:	cc                   	int3
405a9c:	cc                   	int3
405a9d:	cc                   	int3
405a9e:	cc                   	int3
405a9f:	cc                   	int3
405aa0:	8b 41 08             	mov    0x8(%ecx),%eax
405aa3:	c3                   	ret
405aa4:	cc                   	int3
405aa5:	cc                   	int3
405aa6:	cc                   	int3
405aa7:	cc                   	int3
405aa8:	cc                   	int3