408c22:	51                   	push   %ecx
408c23:	51                   	push   %ecx
408c24:	a1 e4 d7 40 00       	mov    0x40d7e4,%eax
408c29:	85 c0                	test   %eax,%eax
408c2b:	74 38                	je     0x408c65
408c2d:	83 3d e8 d7 40 00 00 	cmpl   $0x0,0x40d7e8
408c34:	74 2f                	je     0x408c65
408c36:	8d 4d f8             	lea    -0x8(%ebp),%ecx
408c39:	51                   	push   %ecx
408c3a:	8d 4d fc             	lea    -0x4(%ebp),%ecx
408c3d:	6a 04                	push   $0x4
408c3f:	51                   	push   %ecx
408c40:	ff 75 08             	push   0x8(%ebp)
408c43:	ff d0                	call   *%eax
408c45:	85 c0                	test   %eax,%eax
408c47:	74 1c                	je     0x408c65
408c49:	68 04 01 00 00       	push   $0x104
408c4e:	ff 75 0c             	push   0xc(%ebp)
408c51:	ff 75 fc             	push   -0x4(%ebp)
408c54:	ff 75 08             	push   0x8(%ebp)
408c57:	ff 15 e8 d7 40 00    	call   *0x40d7e8
408c5d:	85 c0                	test   %eax,%eax
408c5f:	74 04                	je     0x408c65
408c61:	b0 01                	mov    $0x1,%al
408c63:	c9                   	leave
408c64:	c3                   	ret
408c65:	32 c0                	xor    %al,%al
408c67:	c9                   	leave
408c68:	c3                   	ret
408c69:	56                   	push   %esi
408c6a:	57                   	push   %edi
408c6b:	ff 74 24 0c          	push   0xc(%esp)
408c6f:	6a 00                	push   $0x0
408c71:	68 00 04 00 00       	push   $0x400
408c76:	ff 15 0c a1 40 00    	call   *0x40a10c
408c7c:	8b f0                	mov    %eax,%esi
408c7e:	85 f6                	test   %esi,%esi
408c80:	74 18                	je     0x408c9a
408c82:	56                   	push   %esi
408c83:	ff 15 c8 a0 40 00    	call   *0x40a0c8
408c89:	56                   	push   %esi
408c8a:	8b f8                	mov    %eax,%edi
408c8c:	ff 15 dc a0 40 00    	call   *0x40a0dc
408c92:	85 ff                	test   %edi,%edi
408c94:	74 04                	je     0x408c9a
408c96:	8b c7                	mov    %edi,%eax
408c98:	eb 43                	jmp    0x408cdd
408c9a:	8b 44 24 10          	mov    0x10(%esp),%eax
408c9e:	83 f8 04             	cmp    $0x4,%eax
408ca1:	7f 05                	jg     0x408ca8
408ca3:	6a 40                	push   $0x40
408ca5:	58                   	pop    %eax
408ca6:	eb 35                	jmp    0x408cdd
408ca8:	83 f8 06             	cmp    $0x6,%eax
408cab:	7f 07                	jg     0x408cb4
408cad:	b8 00 40 00 00       	mov    $0x4000,%eax
408cb2:	eb 29                	jmp    0x408cdd
408cb4:	83 f8 08             	cmp    $0x8,%eax
408cb7:	7f 04                	jg     0x408cbd
408cb9:	6a 20                	push   $0x20
408cbb:	eb e8                	jmp    0x408ca5
408cbd:	83 f8 0a             	cmp    $0xa,%eax
408cc0:	7f 07                	jg     0x408cc9
408cc2:	b8 00 80 00 00       	mov    $0x8000,%eax
408cc7:	eb 14                	jmp    0x408cdd
408cc9:	33 c9                	xor    %ecx,%ecx
408ccb:	83 f8 0d             	cmp    $0xd,%eax
408cce:	0f 9f c1             	setg   %cl
408cd1:	49                   	dec    %ecx
408cd2:	83 e1 80             	and    $0xffffff80,%ecx
408cd5:	81 c1 00 01 00 00    	add    $0x100,%ecx
408cdb:	8b c1                	mov    %ecx,%eax
408cdd:	5f                   	pop    %edi
408cde:	5e                   	pop    %esi
408cdf:	c3                   	ret
408ce0:	55                   	push   %ebp
408ce1:	8b ec                	mov    %esp,%ebp
408ce3:	83 ec 3c             	sub    $0x3c,%esp
408ce6:	6a 3c                	push   $0x3c
408ce8:	8d 45 c4             	lea    -0x3c(%ebp),%eax
408ceb:	6a 00                	push   $0x0
408ced:	50                   	push   %eax
408cee:	e8 49 02 00 00       	call   0x408f3c
408cf3:	ff 75 0c             	push   0xc(%ebp)
408cf6:	e8 23 fd ff ff       	call   0x408a1e
408cfb:	89 45 d4             	mov    %eax,-0x2c(%ebp)
408cfe:	8b 45 08             	mov    0x8(%ebp),%eax
408d01:	83 c4 10             	add    $0x10,%esp
408d04:	89 45 cc             	mov    %eax,-0x34(%ebp)
408d07:	8d 45 c4             	lea    -0x3c(%ebp),%eax
408d0a:	c7 45 c4 3c 00 00 00 	movl   $0x3c,-0x3c(%ebp)
408d11:	50                   	push   %eax
408d12:	c7 45 c8 0c 00 00 00 	movl   $0xc,-0x38(%ebp)
408d19:	c7 45 d0 44 d4 40 00 	movl   $0x40d444,-0x30(%ebp)
408d20:	c7 45 e0 05 00 00 00 	movl   $0x5,-0x20(%ebp)
408d27:	ff 15 d8 a1 40 00    	call   *0x40a1d8
408d2d:	c9                   	leave
408d2e:	c3                   	ret
408d2f:	55                   	push   %ebp
408d30:	8b ec                	mov    %esp,%ebp
408d32:	83 ec 20             	sub    $0x20,%esp
408d35:	8d 45 fc             	lea    -0x4(%ebp),%eax
408d38:	53                   	push   %ebx
408d39:	33 db                	xor    %ebx,%ebx
408d3b:	50                   	push   %eax
408d3c:	6a 28                	push   $0x28
408d3e:	89 5d fc             	mov    %ebx,-0x4(%ebp)
408d41:	ff 15 d8 a0 40 00    	call   *0x40a0d8
408d47:	50                   	push   %eax
408d48:	ff 15 14 a0 40 00    	call   *0x40a014
408d4e:	85 c0                	test   %eax,%eax
408d50:	0f 84 d3 00 00 00    	je     0x408e29
408d56:	56                   	push   %esi
408d57:	8d 45 f0             	lea    -0x10(%ebp),%eax
408d5a:	57                   	push   %edi
408d5b:	8b 3d 18 a0 40 00    	mov    0x40a018,%edi
408d61:	be 9c d4 40 00       	mov    $0x40d49c,%esi
408d66:	50                   	push   %eax
408d67:	56                   	push   %esi
408d68:	53                   	push   %ebx
408d69:	ff d7                	call   *%edi
408d6b:	85 c0                	test   %eax,%eax
408d6d:	74 4f                	je     0x408dbe
408d6f:	8b 45 f0             	mov    -0x10(%ebp),%eax
408d72:	c7 45 e0 01 00 00 00 	movl   $0x1,-0x20(%ebp)
408d79:	89 45 e4             	mov    %eax,-0x1c(%ebp)
408d7c:	8b 45 f4             	mov    -0xc(%ebp),%eax
408d7f:	89 45 e8             	mov    %eax,-0x18(%ebp)
408d82:	8d 45 f8             	lea    -0x8(%ebp),%eax
408d85:	50                   	push   %eax
408d86:	53                   	push   %ebx
408d87:	8d 45 e0             	lea    -0x20(%ebp),%eax
408d8a:	6a 10                	push   $0x10
408d8c:	50                   	push   %eax
408d8d:	53                   	push   %ebx
408d8e:	ff 75 fc             	push   -0x4(%ebp)
408d91:	c7 45 ec 02 00 00 00 	movl   $0x2,-0x14(%ebp)
408d98:	ff 15 1c a0 40 00    	call   *0x40a01c
408d9e:	85 c0                	test   %eax,%eax
408da0:	74 0d                	je     0x408daf
408da2:	ff 15 cc a0 40 00    	call   *0x40a0cc
408da8:	3d 14 05 00 00       	cmp    $0x514,%eax
408dad:	75 0f                	jne    0x408dbe
408daf:	56                   	push   %esi
408db0:	68 64 d4 40 00       	push   $0x40d464
408db5:	53                   	push   %ebx
408db6:	e8 4a f8 ff ff       	call   0x408605
408dbb:	83 c4 0c             	add    $0xc,%esp
408dbe:	8d 45 f0             	lea    -0x10(%ebp),%eax
408dc1:	be 50 d4 40 00       	mov    $0x40d450,%esi
408dc6:	50                   	push   %eax
408dc7:	56                   	push   %esi
408dc8:	53                   	push   %ebx
408dc9:	ff d7                	call   *%edi
408dcb:	85 c0                	test   %eax,%eax
408dcd:	74 4f                	je     0x408e1e
408dcf:	8b 45 f0             	mov    -0x10(%ebp),%eax
408dd2:	c7 45 e0 01 00 00 00 	movl   $0x1,-0x20(%ebp)
408dd9:	89 45 e4             	mov    %eax,-0x1c(%ebp)
408ddc:	8b 45 f4             	mov    -0xc(%ebp),%eax
408ddf:	89 45 e8             	mov    %eax,-0x18(%ebp)
408de2:	8d 45 f8             	lea    -0x8(%ebp),%eax
408de5:	50                   	push   %eax
408de6:	53                   	push   %ebx
408de7:	8d 45 e0             	lea    -0x20(%ebp),%eax
408dea:	6a 10                	push   $0x10
408dec:	50                   	push   %eax
408ded:	53                   	push   %ebx
408dee:	ff 75 fc             	push   -0x4(%ebp)
408df1:	c7 45 ec 02 00 00 00 	movl   $0x2,-0x14(%ebp)
408df8:	ff 15 1c a0 40 00    	call   *0x40a01c
408dfe:	85 c0                	test   %eax,%eax
408e00:	74 0d                	je     0x408e0f
408e02:	ff 15 cc a0 40 00    	call   *0x40a0cc
408e08:	3d 14 05 00 00       	cmp    $0x514,%eax
408e0d:	75 0f                	jne    0x408e1e
408e0f:	56                   	push   %esi
408e10:	68 64 d4 40 00       	push   $0x40d464
408e15:	53                   	push   %ebx
408e16:	e8 ea f7 ff ff       	call   0x408605
408e1b:	83 c4 0c             	add    $0xc,%esp
408e1e:	ff 75 fc             	push   -0x4(%ebp)
408e21:	ff 15 dc a0 40 00    	call   *0x40a0dc
408e27:	5f                   	pop    %edi
408e28:	5e                   	pop    %esi
408e29:	5b                   	pop    %ebx
408e2a:	c9                   	leave
408e2b:	c3                   	ret
408e2c:	55                   	push   %ebp
408e2d:	8b ec                	mov    %esp,%ebp
408e2f:	83 ec 2c             	sub    $0x2c,%esp
408e32:	8d 45 d4             	lea    -0x2c(%ebp),%eax
408e35:	c7 45 d4 2c 00 00 00 	movl   $0x2c,-0x2c(%ebp)
408e3c:	50                   	push   %eax
408e3d:	6a 00                	push   $0x0
408e3f:	ff 75 0c             	push   0xc(%ebp)
408e42:	c7 45 d8 01 00 00 00 	movl   $0x1,-0x28(%ebp)
408e49:	ff 75 08             	push   0x8(%ebp)
408e4c:	ff 15 54 a2 40 00    	call   *0x40a254
408e52:	83 7d e0 08          	cmpl   $0x8,-0x20(%ebp)
408e56:	0f 94 c0             	sete   %al
408e59:	c9                   	leave
408e5a:	c3                   	ret
408e5b:	55                   	push   %ebp
408e5c:	8b ec                	mov    %esp,%ebp
408e5e:	83 ec 2c             	sub    $0x2c,%esp
408e61:	8a 4d 10             	mov    0x10(%ebp),%cl
408e64:	33 c0                	xor    %eax,%eax
408e66:	f6 d9                	neg    %cl
408e68:	1b c9                	sbb    %ecx,%ecx
408e6a:	c7 45 d4 2c 00 00 00 	movl   $0x2c,-0x2c(%ebp)
408e71:	83 e1 08             	and    $0x8,%ecx
408e74:	c7 45 d8 01 00 00 00 	movl   $0x1,-0x28(%ebp)
408e7b:	89 4d e0             	mov    %ecx,-0x20(%ebp)
408e7e:	8d 4d d4             	lea    -0x2c(%ebp),%ecx
408e81:	51                   	push   %ecx
408e82:	50                   	push   %eax
408e83:	ff 75 0c             	push   0xc(%ebp)
408e86:	89 45 ec             	mov    %eax,-0x14(%ebp)
408e89:	89 45 f0             	mov    %eax,-0x10(%ebp)
408e8c:	ff 75 08             	push   0x8(%ebp)
408e8f:	ff 15 14 a2 40 00    	call   *0x40a214
408e95:	c9                   	leave
408e96:	c3                   	ret
408e97:	55                   	push   %ebp
408e98:	8b ec                	mov    %esp,%ebp
408e9a:	83 ec 24             	sub    $0x24,%esp
408e9d:	a1 cc d7 40 00       	mov    0x40d7cc,%eax
408ea2:	85 c0                	test   %eax,%eax
408ea4:	74 20                	je     0x408ec6
408ea6:	8d 4d fc             	lea    -0x4(%ebp),%ecx
408ea9:	51                   	push   %ecx
408eaa:	8d 4d dc             	lea    -0x24(%ebp),%ecx
408ead:	6a 20                	push   $0x20
408eaf:	51                   	push   %ecx
408eb0:	6a 03                	push   $0x3
408eb2:	ff d0                	call   *%eax
408eb4:	85 c0                	test   %eax,%eax
408eb6:	75 0e                	jne    0x408ec6
408eb8:	8b 45 e4             	mov    -0x1c(%ebp),%eax
408ebb:	8b 55 e8             	mov    -0x18(%ebp),%edx
408ebe:	2b 45 dc             	sub    -0x24(%ebp),%eax
408ec1:	1b 55 e0             	sbb    -0x20(%ebp),%edx
408ec4:	c9                   	leave
408ec5:	c3                   	ret
408ec6:	33 c0                	xor    %eax,%eax
408ec8:	33 d2                	xor    %edx,%edx
408eca:	c9                   	leave
408ecb:	c3                   	ret
408ecc:	ff 25 7c a0 40 00    	jmp    *0x40a07c
408ed2:	ff 25 80 a0 40 00    	jmp    *0x40a080
408ed8:	ff 25 84 a0 40 00    	jmp    *0x40a084
408ede:	ff 25 10 a3 40 00    	jmp    *0x40a310
408ee4:	ff 25 04 a3 40 00    	jmp    *0x40a304
408eea:	ff 25 00 a3 40 00    	jmp    *0x40a300
408ef0:	ff 25 08 a3 40 00    	jmp    *0x40a308
408ef6:	ff 25 f8 a2 40 00    	jmp    *0x40a2f8
408efc:	ff 25 f4 a2 40 00    	jmp    *0x40a2f4
408f02:	ff 25 f0 a2 40 00    	jmp    *0x40a2f0
408f08:	56                   	push   %esi
408f09:	8b f1                	mov    %ecx,%esi
408f0b:	e8 a2 04 00 00       	call   0x4093b2
408f10:	f6 44 24 08 01       	testb  $0x1,0x8(%esp)
408f15:	74 07                	je     0x408f1e
408f17:	56                   	push   %esi
408f18:	e8 2b 00 00 00       	call   0x408f48
408f1d:	59                   	pop    %ecx
408f1e:	8b c6                	mov    %esi,%eax
408f20:	5e                   	pop    %esi
408f21:	c2 04 00             	ret    $0x4
408f24:	ff 25 78 a1 40 00    	jmp    *0x40a178
408f2a:	cc                   	int3
408f2b:	cc                   	int3
408f2c:	cc                   	int3
408f2d:	cc                   	int3
408f2e:	cc                   	int3
408f2f:	cc                   	int3
408f30:	ff 25 74 a1 40 00    	jmp    *0x40a174
408f36:	ff 25 70 a1 40 00    	jmp    *0x40a170
408f3c:	ff 25 6c a1 40 00    	jmp    *0x40a16c
408f42:	ff 25 68 a1 40 00    	jmp    *0x40a168
408f48:	ff 25 60 a1 40 00    	jmp    *0x40a160
408f4e:	ff 25 5c a1 40 00    	jmp    *0x40a15c
408f54:	cc                   	int3
408f55:	cc                   	int3
408f56:	cc                   	int3
408f57:	cc                   	int3
408f58:	cc                   	int3
408f59:	cc                   	int3
408f5a:	cc                   	int3
408f5b:	cc                   	int3
408f5c:	cc                   	int3
408f5d:	cc                   	int3
408f5e:	cc                   	int3
408f5f:	cc                   	int3
408f60:	53                   	push   %ebx
408f61:	8b 44 24 14          	mov    0x14(%esp),%eax
408f65:	0b c0                	or     %eax,%eax
408f67:	75 18                	jne    0x408f81
408f69:	8b 4c 24 10          	mov    0x10(%esp),%ecx
408f6d:	8b 44 24 0c          	mov    0xc(%esp),%eax
408f71:	33 d2                	xor    %edx,%edx
408f73:	f7 f1                	div    %ecx
408f75:	8b 44 24 08          	mov    0x8(%esp),%eax
408f79:	f7 f1                	div    %ecx
408f7b:	8b c2                	mov    %edx,%eax
408f7d:	33 d2                	xor    %edx,%edx
408f7f:	eb 50                	jmp    0x408fd1
408f81:	8b c8                	mov    %eax,%ecx
408f83:	8b 5c 24 10          	mov    0x10(%esp),%ebx
408f87:	8b 54 24 0c          	mov    0xc(%esp),%edx
408f8b:	8b 44 24 08          	mov    0x8(%esp),%eax
408f8f:	d1 e9                	shr    $1,%ecx
408f91:	d1 db                	rcr    $1,%ebx
408f93:	d1 ea                	shr    $1,%edx
408f95:	d1 d8                	rcr    $1,%eax
408f97:	0b c9                	or     %ecx,%ecx
408f99:	75 f4                	jne    0x408f8f
408f9b:	f7 f3                	div    %ebx
408f9d:	8b c8                	mov    %eax,%ecx
408f9f:	f7 64 24 14          	mull   0x14(%esp)
408fa3:	91                   	xchg   %eax,%ecx
408fa4:	f7 64 24 10          	mull   0x10(%esp)
408fa8:	03 d1                	add    %ecx,%edx
408faa:	72 0e                	jb     0x408fba
408fac:	3b 54 24 0c          	cmp    0xc(%esp),%edx
408fb0:	77 08                	ja     0x408fba
408fb2:	72 0e                	jb     0x408fc2
408fb4:	3b 44 24 08          	cmp    0x8(%esp),%eax
408fb8:	76 08                	jbe    0x408fc2
408fba:	2b 44 24 10          	sub    0x10(%esp),%eax
408fbe:	1b 54 24 14          	sbb    0x14(%esp),%edx
408fc2:	2b 44 24 08          	sub    0x8(%esp),%eax
408fc6:	1b 54 24 0c          	sbb    0xc(%esp),%edx
408fca:	f7 da                	neg    %edx
408fcc:	f7 d8                	neg    %eax
408fce:	83 da 00             	sbb    $0x0,%edx
408fd1:	5b                   	pop    %ebx
408fd2:	c2 10 00             	ret    $0x10
408fd5:	cc                   	int3
408fd6:	cc                   	int3
408fd7:	cc                   	int3
408fd8:	cc                   	int3
408fd9:	cc                   	int3
408fda:	cc                   	int3
408fdb:	cc                   	int3
408fdc:	cc                   	int3
408fdd:	cc                   	int3
408fde:	cc                   	int3
408fdf:	cc                   	int3