408ab3:	0f 86 69 01 00 00    	jbe    0x408c22
408ab9:	89 85 60 fd ff ff    	mov    %eax,-0x2a0(%ebp)
408abf:	ba 4d 31 40 00       	mov    $0x40314d,%edx
408ac4:	8d 85 60 fd ff ff    	lea    -0x2a0(%ebp),%eax
408aca:	c7 85 5c fd ff ff bc 	movl   $0x402ebc,-0x2a4(%ebp)
408ad1:	2e 40 00
408ad4:	50                   	push   %eax
408ad5:	8d 85 5c fd ff ff    	lea    -0x2a4(%ebp),%eax
408adb:	50                   	push   %eax
408adc:	51                   	push   %ecx
408add:	51                   	push   %ecx
408ade:	e8 c5 ac ff ff       	call   0x4037a8
408ae3:	e9 3a 01 00 00       	jmp    0x408c22
408ae8:	8d 85 68 fd ff ff    	lea    -0x298(%ebp),%eax
408aee:	50                   	push   %eax
408aef:	68 3f 00 0f 00       	push   $0xf003f
408af4:	ff 15 34 f0 40 00    	call   *0x40f034
408afa:	85 c0                	test   %eax,%eax
408afc:	74 31                	je     0x408b2f
408afe:	83 3d 80 c0 40 00 02 	cmpl   $0x2,0x40c080
408b05:	0f 86 17 01 00 00    	jbe    0x408c22
408b0b:	89 85 5c fd ff ff    	mov    %eax,-0x2a4(%ebp)
408b11:	ba 4d 31 40 00       	mov    $0x40314d,%edx
408b16:	8d 85 5c fd ff ff    	lea    -0x2a4(%ebp),%eax
408b1c:	c7 85 60 fd ff ff f4 	movl   $0x402ef4,-0x2a0(%ebp)
408b23:	2e 40 00
408b26:	50                   	push   %eax
408b27:	8d 85 60 fd ff ff    	lea    -0x2a0(%ebp),%eax
408b2d:	eb ac                	jmp    0x408adb
408b2f:	ff b5 64 fd ff ff    	push   -0x29c(%ebp)
408b35:	bf 44 01 00 00       	mov    $0x144,%edi
408b3a:	8d 85 6c fd ff ff    	lea    -0x294(%ebp),%eax
408b40:	68 00 29 40 00       	push   $0x402900
408b45:	57                   	push   %edi
408b46:	50                   	push   %eax
408b47:	e8 ff f2 ff ff       	call   0x407e4b
408b4c:	83 c4 10             	add    $0x10,%esp
408b4f:	8d 85 6c fd ff ff    	lea    -0x294(%ebp),%eax
408b55:	50                   	push   %eax
408b56:	ff b5 68 fd ff ff    	push   -0x298(%ebp)
408b5c:	ff 15 30 f0 40 00    	call   *0x40f030
408b62:	ff b5 64 fd ff ff    	push   -0x29c(%ebp)
408b68:	8d 85 6c fd ff ff    	lea    -0x294(%ebp),%eax
408b6e:	68 48 2a 40 00       	push   $0x402a48
408b73:	57                   	push   %edi
408b74:	50                   	push   %eax
408b75:	e8 d1 f2 ff ff       	call   0x407e4b
408b7a:	83 c4 10             	add    $0x10,%esp
408b7d:	8d 85 6c fd ff ff    	lea    -0x294(%ebp),%eax
408b83:	50                   	push   %eax
408b84:	ff b5 68 fd ff ff    	push   -0x298(%ebp)
408b8a:	ff 15 30 f0 40 00    	call   *0x40f030
408b90:	ff b5 64 fd ff ff    	push   -0x29c(%ebp)
408b96:	8d 85 6c fd ff ff    	lea    -0x294(%ebp),%eax
408b9c:	68 80 29 40 00       	push   $0x402980
408ba1:	57                   	push   %edi
408ba2:	50                   	push   %eax
408ba3:	e8 a3 f2 ff ff       	call   0x407e4b
408ba8:	83 c4 10             	add    $0x10,%esp
408bab:	8d 85 6c fd ff ff    	lea    -0x294(%ebp),%eax
408bb1:	50                   	push   %eax
408bb2:	ff b5 68 fd ff ff    	push   -0x298(%ebp)
408bb8:	ff 15 30 f0 40 00    	call   *0x40f030
408bbe:	ff b5 64 fd ff ff    	push   -0x29c(%ebp)
408bc4:	8d 85 6c fd ff ff    	lea    -0x294(%ebp),%eax
408bca:	68 08 2a 40 00       	push   $0x402a08
408bcf:	57                   	push   %edi
408bd0:	50                   	push   %eax
408bd1:	e8 75 f2 ff ff       	call   0x407e4b
408bd6:	83 c4 10             	add    $0x10,%esp
408bd9:	8d 85 6c fd ff ff    	lea    -0x294(%ebp),%eax
408bdf:	50                   	push   %eax
408be0:	ff b5 68 fd ff ff    	push   -0x298(%ebp)
408be6:	ff 15 30 f0 40 00    	call   *0x40f030
408bec:	ff b5 64 fd ff ff    	push   -0x29c(%ebp)
408bf2:	8d 85 6c fd ff ff    	lea    -0x294(%ebp),%eax
408bf8:	68 a4 2a 40 00       	push   $0x402aa4
408bfd:	57                   	push   %edi
408bfe:	50                   	push   %eax
408bff:	e8 47 f2 ff ff       	call   0x407e4b
408c04:	83 c4 10             	add    $0x10,%esp
408c07:	8d 85 6c fd ff ff    	lea    -0x294(%ebp),%eax
408c0d:	50                   	push   %eax
408c0e:	ff b5 68 fd ff ff    	push   -0x298(%ebp)
408c14:	ff 15 30 f0 40 00    	call   *0x40f030
408c1a:	8b 55 08             	mov    0x8(%ebp),%edx
408c1d:	e8 65 fa ff ff       	call   0x408687
408c22:	83 bd 68 fd ff ff 00 	cmpl   $0x0,-0x298(%ebp)
408c29:	74 0c                	je     0x408c37
408c2b:	ff b5 68 fd ff ff    	push   -0x298(%ebp)
408c31:	ff 15 00 f0 40 00    	call   *0x40f000
408c37:	85 f6                	test   %esi,%esi
408c39:	74 05                	je     0x408c40
408c3b:	83 fe 01             	cmp    $0x1,%esi
408c3e:	75 06                	jne    0x408c46
408c40:	ff 15 10 f1 40 00    	call   *0x40f110
408c46:	8b 4d f8             	mov    -0x8(%ebp),%ecx
408c49:	5f                   	pop    %edi
408c4a:	33 cd                	xor    %ebp,%ecx
408c4c:	5e                   	pop    %esi
408c4d:	e8 0e 0c 00 00       	call   0x409860
408c52:	c9                   	leave
408c53:	c2 04 00             	ret    $0x4
408c56:	8b ff                	mov    %edi,%edi
408c58:	55                   	push   %ebp
408c59:	8b ec                	mov    %esp,%ebp
408c5b:	83 ec 0c             	sub    $0xc,%esp
408c5e:	53                   	push   %ebx
408c5f:	56                   	push   %esi
408c60:	57                   	push   %edi
408c61:	68 2c 2f 40 00       	push   $0x402f2c
408c66:	33 f6                	xor    %esi,%esi
408c68:	ff 15 98 f0 40 00    	call   *0x40f098
408c6e:	8b f8                	mov    %eax,%edi
408c70:	85 ff                	test   %edi,%edi
408c72:	75 35                	jne    0x408ca9
408c74:	ff 15 7c f0 40 00    	call   *0x40f07c
408c7a:	83 3d 80 c0 40 00 02 	cmpl   $0x2,0x40c080
408c81:	8b f0                	mov    %eax,%esi
408c83:	0f 86 8d 00 00 00    	jbe    0x408d16
408c89:	8d 45 fc             	lea    -0x4(%ebp),%eax
408c8c:	89 75 fc             	mov    %esi,-0x4(%ebp)
408c8f:	50                   	push   %eax
408c90:	8d 45 f8             	lea    -0x8(%ebp),%eax
408c93:	c7 45 f8 44 2f 40 00 	movl   $0x402f44,-0x8(%ebp)
408c9a:	50                   	push   %eax
408c9b:	51                   	push   %ecx
408c9c:	51                   	push   %ecx
408c9d:	ba 1e 31 40 00       	mov    $0x40311e,%edx
408ca2:	e8 01 ab ff ff       	call   0x4037a8
408ca7:	eb 6d                	jmp    0x408d16
408ca9:	6a 24                	push   $0x24
408cab:	57                   	push   %edi
408cac:	ff 15 80 f0 40 00    	call   *0x40f080
408cb2:	8b d8                	mov    %eax,%ebx
408cb4:	85 db                	test   %ebx,%ebx
408cb6:	74 28                	je     0x408ce0
408cb8:	8b cb                	mov    %ebx,%ecx
408cba:	ff 15 20 f2 40 00    	call   *0x40f220
408cc0:	ff d3                	call   *%ebx
408cc2:	85 c0                	test   %eax,%eax
408cc4:	74 49                	je     0x408d0f
408cc6:	83 3d 80 c0 40 00 02 	cmpl   $0x2,0x40c080
408ccd:	0f b7 f0             	movzwl %ax,%esi
408cd0:	76 3d                	jbe    0x408d0f
408cd2:	c7 45 fc 74 2f 40 00 	movl   $0x402f74,-0x4(%ebp)
408cd9:	ba 4d 31 40 00       	mov    $0x40314d,%edx
408cde:	eb 1d                	jmp    0x408cfd
408ce0:	ff 15 7c f0 40 00    	call   *0x40f07c
408ce6:	83 3d 80 c0 40 00 02 	cmpl   $0x2,0x40c080
408ced:	8b f0                	mov    %eax,%esi
408cef:	76 1e                	jbe    0x408d0f
408cf1:	c7 45 fc 9c 2f 40 00 	movl   $0x402f9c,-0x4(%ebp)
408cf8:	ba 4d 31 40 00       	mov    $0x40314d,%edx
408cfd:	8d 45 f8             	lea    -0x8(%ebp),%eax
408d00:	50                   	push   %eax
408d01:	8d 45 fc             	lea    -0x4(%ebp),%eax
408d04:	50                   	push   %eax
408d05:	51                   	push   %ecx
408d06:	51                   	push   %ecx
408d07:	89 75 f8             	mov    %esi,-0x8(%ebp)
408d0a:	e8 99 aa ff ff       	call   0x4037a8
408d0f:	57                   	push   %edi
408d10:	ff 15 78 f0 40 00    	call   *0x40f078
408d16:	5f                   	pop    %edi
408d17:	8b c6                	mov    %esi,%eax
408d19:	5e                   	pop    %esi
408d1a:	5b                   	pop    %ebx
408d1b:	c9                   	leave
408d1c:	c3                   	ret
408d1d:	8b ff                	mov    %edi,%edi
408d1f:	55                   	push   %ebp
408d20:	8b ec                	mov    %esp,%ebp
408d22:	ff 35 d4 2f 40 00    	push   0x402fd4
408d28:	ff 75 0c             	push   0xc(%ebp)
408d2b:	ff 35 90 f0 40 00    	push   0x40f090
408d31:	ff 35 d4 2f 40 00    	push   0x402fd4
408d37:	ff 75 08             	push   0x8(%ebp)
408d3a:	68 00 00 40 00       	push   $0x400000
408d3f:	ff 15 94 f0 40 00    	call   *0x40f094
408d45:	5d                   	pop    %ebp
408d46:	c2 08 00             	ret    $0x8
408d49:	8b ff                	mov    %edi,%edi
408d4b:	55                   	push   %ebp
408d4c:	8b ec                	mov    %esp,%ebp
408d4e:	5d                   	pop    %ebp
408d4f:	e9 00 00 00 00       	jmp    0x408d54
408d54:	8b ff                	mov    %edi,%edi
408d56:	55                   	push   %ebp
408d57:	8b ec                	mov    %esp,%ebp
408d59:	eb 0d                	jmp    0x408d68
408d5b:	ff 75 08             	push   0x8(%ebp)
408d5e:	e8 03 10 00 00       	call   0x409d66
408d63:	59                   	pop    %ecx
408d64:	85 c0                	test   %eax,%eax
408d66:	74 10                	je     0x408d78
408d68:	ff 75 08             	push   0x8(%ebp)
408d6b:	ff 15 f4 f1 40 00    	call   *0x40f1f4
408d71:	59                   	pop    %ecx
408d72:	85 c0                	test   %eax,%eax
408d74:	74 e5                	je     0x408d5b
408d76:	5d                   	pop    %ebp
408d77:	c3                   	ret
408d78:	e9 7f 03 00 00       	jmp    0x4090fc
408d7d:	8b ff                	mov    %edi,%edi
408d7f:	55                   	push   %ebp
408d80:	8b ec                	mov    %esp,%ebp
408d82:	33 c0                	xor    %eax,%eax
408d84:	39 45 08             	cmp    %eax,0x8(%ebp)
408d87:	74 11                	je     0x408d9a
408d89:	ff 75 08             	push   0x8(%ebp)
408d8c:	e8 c3 ff ff ff       	call   0x408d54
408d91:	59                   	pop    %ecx
408d92:	85 c0                	test   %eax,%eax
408d94:	0f 84 62 03 00 00    	je     0x4090fc
408d9a:	5d                   	pop    %ebp
408d9b:	c3                   	ret
408d9c:	8b ff                	mov    %edi,%edi
408d9e:	55                   	push   %ebp
408d9f:	8b ec                	mov    %esp,%ebp
408da1:	56                   	push   %esi
408da2:	ff 75 08             	push   0x8(%ebp)
408da5:	8b f1                	mov    %ecx,%esi
408da7:	83 66 10 00          	andl   $0x0,0x10(%esi)
408dab:	c7 46 14 0f 00 00 00 	movl   $0xf,0x14(%esi)
408db2:	c6 06 00             	movb   $0x0,(%esi)
408db5:	e8 2e 06 00 00       	call   0x4093e8
408dba:	59                   	pop    %ecx
408dbb:	50                   	push   %eax
408dbc:	ff 75 08             	push   0x8(%ebp)
408dbf:	8b ce                	mov    %esi,%ecx
408dc1:	e8 45 04 00 00       	call   0x40920b
408dc6:	8b c6                	mov    %esi,%eax
408dc8:	5e                   	pop    %esi
408dc9:	5d                   	pop    %ebp
408dca:	c2 04 00             	ret    $0x4
408dcd:	cc                   	int3
408dce:	cc                   	int3
408dcf:	cc                   	int3
408dd0:	8b ff                	mov    %edi,%edi
408dd2:	55                   	push   %ebp
408dd3:	8b ec                	mov    %esp,%ebp
408dd5:	51                   	push   %ecx
408dd6:	56                   	push   %esi
408dd7:	ff 75 08             	push   0x8(%ebp)
408dda:	8b f1                	mov    %ecx,%esi
408ddc:	89 75 fc             	mov    %esi,-0x4(%ebp)
408ddf:	e8 9c 0f 00 00       	call   0x409d80
408de4:	c7 06 00 10 40 00    	movl   $0x401000,(%esi)
408dea:	8b c6                	mov    %esi,%eax
408dec:	5e                   	pop    %esi
408ded:	c9                   	leave
408dee:	c2 04 00             	ret    $0x4
408df1:	8b ff                	mov    %edi,%edi
408df3:	55                   	push   %ebp
408df4:	8b ec                	mov    %esp,%ebp
408df6:	51                   	push   %ecx
408df7:	56                   	push   %esi
408df8:	6a 01                	push   $0x1
408dfa:	8d 45 fc             	lea    -0x4(%ebp),%eax
408dfd:	c7 45 fc ec 28 40 00 	movl   $0x4028ec,-0x4(%ebp)
408e04:	50                   	push   %eax
408e05:	8b f1                	mov    %ecx,%esi
408e07:	e8 66 0f 00 00       	call   0x409d72
408e0c:	c7 06 00 10 40 00    	movl   $0x401000,(%esi)
408e12:	8b c6                	mov    %esi,%eax
408e14:	5e                   	pop    %esi
408e15:	c9                   	leave
408e16:	c3                   	ret
408e17:	cc                   	int3
408e18:	cc                   	int3
408e19:	cc                   	int3
408e1a:	cc                   	int3
408e1b:	cc                   	int3
408e1c:	cc                   	int3
408e1d:	cc                   	int3
408e1e:	cc                   	int3
408e1f:	cc                   	int3
408e20:	8b ff                	mov    %edi,%edi
408e22:	55                   	push   %ebp
408e23:	8b ec                	mov    %esp,%ebp
408e25:	51                   	push   %ecx
408e26:	56                   	push   %esi
408e27:	ff 75 08             	push   0x8(%ebp)
408e2a:	8b f1                	mov    %ecx,%esi
408e2c:	89 75 fc             	mov    %esi,-0x4(%ebp)
408e2f:	e8 4c 0f 00 00       	call   0x409d80
408e34:	c7 06 08 10 40 00    	movl   $0x401008,(%esi)
408e3a:	8b c6                	mov    %esi,%eax
408e3c:	5e                   	pop    %esi
408e3d:	c9                   	leave
408e3e:	c2 04 00             	ret    $0x4
408e41:	8b ff                	mov    %edi,%edi
408e43:	55                   	push   %ebp
408e44:	8b ec                	mov    %esp,%ebp
408e46:	51                   	push   %ecx
408e47:	8b 45 08             	mov    0x8(%ebp),%eax
408e4a:	56                   	push   %esi
408e4b:	8b f1                	mov    %ecx,%esi
408e4d:	89 75 fc             	mov    %esi,-0x4(%ebp)
408e50:	89 45 fc             	mov    %eax,-0x4(%ebp)
408e53:	8d 45 fc             	lea    -0x4(%ebp),%eax
408e56:	50                   	push   %eax
408e57:	e8 10 0f 00 00       	call   0x409d6c
408e5c:	c7 06 08 10 40 00    	movl   $0x401008,(%esi)
408e62:	8b c6                	mov    %esi,%eax
408e64:	5e                   	pop    %esi
408e65:	c9                   	leave
408e66:	c2 04 00             	ret    $0x4
408e69:	cc                   	int3
408e6a:	cc                   	int3
408e6b:	cc                   	int3
408e6c:	cc                   	int3
408e6d:	cc                   	int3
408e6e:	cc                   	int3
408e6f:	cc                   	int3
408e70:	c7 01 00 10 40 00    	movl   $0x401000,(%ecx)
408e76:	e9 0b 0f 00 00       	jmp    0x409d86
408e7b:	cc                   	int3
408e7c:	cc                   	int3
408e7d:	cc                   	int3
408e7e:	cc                   	int3
408e7f:	cc                   	int3
408e80:	e9 01 0f 00 00       	jmp    0x409d86
408e85:	8b ff                	mov    %edi,%edi
408e87:	55                   	push   %ebp
408e88:	8b ec                	mov    %esp,%ebp
408e8a:	8b 55 08             	mov    0x8(%ebp),%edx
408e8d:	8b 41 04             	mov    0x4(%ecx),%eax
408e90:	3b 42 04             	cmp    0x4(%edx),%eax
408e93:	75 0a                	jne    0x408e9f
408e95:	8b 01                	mov    (%ecx),%eax
408e97:	3b 02                	cmp    (%edx),%eax
408e99:	75 04                	jne    0x408e9f
408e9b:	b0 01                	mov    $0x1,%al
408e9d:	eb 02                	jmp    0x408ea1
408e9f:	32 c0                	xor    %al,%al
408ea1:	5d                   	pop    %ebp
408ea2:	c2 04 00             	ret    $0x4
408ea5:	cc                   	int3
408ea6:	cc                   	int3
408ea7:	cc                   	int3
408ea8:	cc                   	int3
408ea9:	cc                   	int3
408eaa:	cc                   	int3
408eab:	cc                   	int3
408eac:	cc                   	int3
408ead:	cc                   	int3
408eae:	cc                   	int3
408eaf:	cc                   	int3