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
407ad9:	0f 83 a9 00 00 00    	jae    0x407b88
407adf:	33 c0                	xor    %eax,%eax
407ae1:	66 89 84 0d d8 f9 ff 	mov    %ax,-0x628(%ebp,%ecx,1)
407ae8:	ff
407ae9:	8d 85 d8 f9 ff ff    	lea    -0x628(%ebp),%eax
407aef:	50                   	push   %eax
407af0:	68 34 25 40 00       	push   $0x402534
407af5:	8d 85 ac f5 ff ff    	lea    -0xa54(%ebp),%eax
407afb:	50                   	push   %eax
407afc:	e8 5f e7 ff ff       	call   0x406260
407b01:	8b f0                	mov    %eax,%esi
407b03:	85 f6                	test   %esi,%esi
407b05:	78 1e                	js     0x407b25
407b07:	8d 85 c8 f5 ff ff    	lea    -0xa38(%ebp),%eax
407b0d:	50                   	push   %eax
407b0e:	68 44 25 40 00       	push   $0x402544
407b13:	8d 85 ac f5 ff ff    	lea    -0xa54(%ebp),%eax
407b19:	50                   	push   %eax
407b1a:	e8 41 e7 ff ff       	call   0x406260
407b1f:	8b f0                	mov    %eax,%esi
407b21:	85 f6                	test   %esi,%esi
407b23:	79 29                	jns    0x407b4e
407b25:	8d 8d c4 f5 ff ff    	lea    -0xa3c(%ebp),%ecx
407b2b:	e8 5c eb ff ff       	call   0x40668c
407b30:	8d 8d ac f5 ff ff    	lea    -0xa54(%ebp),%ecx
407b36:	e8 79 e4 ff ff       	call   0x405fb4
407b3b:	8b 4d fc             	mov    -0x4(%ebp),%ecx
407b3e:	8b c6                	mov    %esi,%eax
407b40:	5f                   	pop    %edi
407b41:	5e                   	pop    %esi
407b42:	33 cd                	xor    %ebp,%ecx
407b44:	5b                   	pop    %ebx
407b45:	e8 16 1d 00 00       	call   0x409860
407b4a:	c9                   	leave
407b4b:	c2 08 00             	ret    $0x8
407b4e:	8d 8d ac f5 ff ff    	lea    -0xa54(%ebp),%ecx
407b54:	0f b7 c3             	movzwl %bx,%eax
407b57:	89 bd c0 f5 ff ff    	mov    %edi,-0xa40(%ebp)
407b5d:	39 7d 08             	cmp    %edi,0x8(%ebp)
407b60:	74 04                	je     0x407b66
407b62:	6a 01                	push   $0x1
407b64:	eb 01                	jmp    0x407b67
407b66:	57                   	push   %edi
407b67:	68 5c 25 40 00       	push   $0x40255c
407b6c:	50                   	push   %eax
407b6d:	8d 85 f0 fd ff ff    	lea    -0x210(%ebp),%eax
407b73:	50                   	push   %eax
407b74:	e8 37 fc ff ff       	call   0x4077b0
407b79:	8d 8d c0 f5 ff ff    	lea    -0xa40(%ebp),%ecx
407b7f:	8b f0                	mov    %eax,%esi
407b81:	e8 06 eb ff ff       	call   0x40668c
407b86:	eb 9d                	jmp    0x407b25
407b88:	e8 d2 1f 00 00       	call   0x409b5f
407b8d:	cc                   	int3
407b8e:	cc                   	int3
407b8f:	cc                   	int3
407b90:	8b ff                	mov    %edi,%edi
407b92:	55                   	push   %ebp
407b93:	8b ec                	mov    %esp,%ebp
407b95:	ff 75 14             	push   0x14(%ebp)
407b98:	8b 55 0c             	mov    0xc(%ebp),%edx
407b9b:	ff 75 10             	push   0x10(%ebp)
407b9e:	8b 4d 08             	mov    0x8(%ebp),%ecx
407ba1:	e8 d8 fd ff ff       	call   0x40797e
407ba6:	5d                   	pop    %ebp
407ba7:	c2 10 00             	ret    $0x10
407baa:	6a 10                	push   $0x10
407bac:	68 e0 ac 40 00       	push   $0x40ace0
407bb1:	e8 32 26 00 00       	call   0x40a1e8
407bb6:	c7 05 1c ee 40 00 01 	movl   $0x1,0x40ee1c
407bbd:	00 00 00
407bc0:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
407bc4:	68 a0 0f 00 00       	push   $0xfa0
407bc9:	68 04 ee 40 00       	push   $0x40ee04
407bce:	ff 15 c4 f0 40 00    	call   *0x40f0c4
407bd4:	eb 1c                	jmp    0x407bf2
407bd6:	8b 45 ec             	mov    -0x14(%ebp),%eax
407bd9:	8b 00                	mov    (%eax),%eax
407bdb:	8b 00                	mov    (%eax),%eax
407bdd:	89 45 e4             	mov    %eax,-0x1c(%ebp)
407be0:	33 c0                	xor    %eax,%eax
407be2:	40                   	inc    %eax
407be3:	c3                   	ret
407be4:	8b 65 e8             	mov    -0x18(%ebp),%esp
407be7:	ff 75 e4             	push   -0x1c(%ebp)
407bea:	ff 15 6c f0 40 00    	call   *0x40f06c
407bf0:	33 c0                	xor    %eax,%eax
407bf2:	a3 1c ee 40 00       	mov    %eax,0x40ee1c
407bf7:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
407bfe:	85 c0                	test   %eax,%eax
407c00:	74 17                	je     0x407c19
407c02:	b8 04 ee 40 00       	mov    $0x40ee04,%eax
407c07:	8b 4d f0             	mov    -0x10(%ebp),%ecx
407c0a:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
407c11:	59                   	pop    %ecx
407c12:	5f                   	pop    %edi
407c13:	5e                   	pop    %esi
407c14:	5b                   	pop    %ebx
407c15:	c9                   	leave
407c16:	c2 04 00             	ret    $0x4
407c19:	ff 15 7c f0 40 00    	call   *0x40f07c
407c1f:	89 45 e0             	mov    %eax,-0x20(%ebp)
407c22:	68 a4 af 40 00       	push   $0x40afa4
407c27:	8d 45 e0             	lea    -0x20(%ebp),%eax
407c2a:	50                   	push   %eax
407c2b:	e8 66 21 00 00       	call   0x409d96
407c30:	cc                   	int3
407c31:	cc                   	int3
407c32:	cc                   	int3
407c33:	cc                   	int3
407c34:	cc                   	int3
407c35:	cc                   	int3
407c36:	cc                   	int3
407c37:	cc                   	int3
407c38:	cc                   	int3
407c39:	cc                   	int3
407c3a:	cc                   	int3
407c3b:	cc                   	int3
407c3c:	cc                   	int3
407c3d:	cc                   	int3
407c3e:	cc                   	int3
407c3f:	cc                   	int3
407c40:	8b ff                	mov    %edi,%edi
407c42:	55                   	push   %ebp
407c43:	8b ec                	mov    %esp,%ebp
407c45:	83 ec 14             	sub    $0x14,%esp
407c48:	53                   	push   %ebx
407c49:	56                   	push   %esi
407c4a:	57                   	push   %edi
407c4b:	33 ff                	xor    %edi,%edi
407c4d:	68 04 ee 40 00       	push   $0x40ee04
407c52:	89 7d fc             	mov    %edi,-0x4(%ebp)
407c55:	ff 15 60 f0 40 00    	call   *0x40f060
407c5b:	8d 45 fc             	lea    -0x4(%ebp),%eax
407c5e:	50                   	push   %eax
407c5f:	68 ff 01 0f 00       	push   $0xf01ff
407c64:	ff 15 70 f0 40 00    	call   *0x40f070
407c6a:	50                   	push   %eax
407c6b:	ff 15 20 f0 40 00    	call   *0x40f020
407c71:	bb 00 00 07 80       	mov    $0x80070000,%ebx
407c76:	85 c0                	test   %eax,%eax
407c78:	75 50                	jne    0x407cca
407c7a:	ff 15 7c f0 40 00    	call   *0x40f07c
407c80:	8b f0                	mov    %eax,%esi
407c82:	85 f6                	test   %esi,%esi
407c84:	7e 07                	jle    0x407c8d
407c86:	0f b7 f6             	movzwl %si,%esi
407c89:	0b f3                	or     %ebx,%esi
407c8b:	85 f6                	test   %esi,%esi
407c8d:	79 3b                	jns    0x407cca
407c8f:	83 3d 80 c0 40 00 03 	cmpl   $0x3,0x40c080
407c96:	0f 86 96 00 00 00    	jbe    0x407d32
407c9c:	8d 45 f8             	lea    -0x8(%ebp),%eax
407c9f:	c7 45 f8 68 28 40 00 	movl   $0x402868,-0x8(%ebp)
407ca6:	50                   	push   %eax
407ca7:	8d 45 f4             	lea    -0xc(%ebp),%eax
407caa:	89 75 f4             	mov    %esi,-0xc(%ebp)
407cad:	50                   	push   %eax
407cae:	8d 45 f0             	lea    -0x10(%ebp),%eax
407cb1:	c7 45 f0 88 28 40 00 	movl   $0x402888,-0x10(%ebp)
407cb8:	50                   	push   %eax
407cb9:	c7 45 ec 9c 28 40 00 	movl   $0x40289c,-0x14(%ebp)
407cc0:	8d 45 ec             	lea    -0x14(%ebp),%eax
407cc3:	ba b7 30 40 00       	mov    $0x4030b7,%edx
407cc8:	eb 60                	jmp    0x407d2a
407cca:	ff 75 14             	push   0x14(%ebp)
407ccd:	39 7d 0c             	cmp    %edi,0xc(%ebp)
407cd0:	75 0d                	jne    0x407cdf
407cd2:	8b 55 10             	mov    0x10(%ebp),%edx
407cd5:	51                   	push   %ecx
407cd6:	e8 9f 0a 00 00       	call   0x40877a
407cdb:	8b f8                	mov    %eax,%edi
407cdd:	eb 05                	jmp    0x407ce4
407cdf:	e8 82 0d 00 00       	call   0x408a66
407ce4:	85 ff                	test   %edi,%edi