406bbb:	8d 4d f8             	lea    -0x8(%ebp),%ecx
406bbe:	51                   	push   %ecx
406bbf:	53                   	push   %ebx
406bc0:	50                   	push   %eax
406bc1:	56                   	push   %esi
406bc2:	53                   	push   %ebx
406bc3:	53                   	push   %ebx
406bc4:	57                   	push   %edi
406bc5:	ff 15 68 a0 40 00    	call   *0x40a068
406bcb:	8b f0                	mov    %eax,%esi
406bcd:	3b f3                	cmp    %ebx,%esi
406bcf:	89 75 18             	mov    %esi,0x18(%ebp)
406bd2:	75 22                	jne    0x406bf6
406bd4:	be 00 80 00 00       	mov    $0x8000,%esi
406bd9:	56                   	push   %esi
406bda:	53                   	push   %ebx
406bdb:	ff 75 10             	push   0x10(%ebp)
406bde:	57                   	push   %edi
406bdf:	8b 3d a8 a0 40 00    	mov    0x40a0a8,%edi
406be5:	ff d7                	call   *%edi
406be7:	56                   	push   %esi
406be8:	53                   	push   %ebx
406be9:	ff 75 0c             	push   0xc(%ebp)
406bec:	ff 75 08             	push   0x8(%ebp)
406bef:	ff d7                	call   *%edi
406bf1:	83 c8 ff             	or     $0xffffffff,%eax
406bf4:	eb 40                	jmp    0x406c36
406bf6:	68 d0 07 00 00       	push   $0x7d0
406bfb:	56                   	push   %esi
406bfc:	ff 15 14 a1 40 00    	call   *0x40a114
406c02:	8d 45 fc             	lea    -0x4(%ebp),%eax
406c05:	50                   	push   %eax
406c06:	56                   	push   %esi
406c07:	ff 15 64 a0 40 00    	call   *0x40a064
406c0d:	be 00 80 00 00       	mov    $0x8000,%esi
406c12:	56                   	push   %esi
406c13:	53                   	push   %ebx
406c14:	ff 75 10             	push   0x10(%ebp)
406c17:	57                   	push   %edi
406c18:	8b 3d a8 a0 40 00    	mov    0x40a0a8,%edi
406c1e:	ff d7                	call   *%edi
406c20:	56                   	push   %esi
406c21:	53                   	push   %ebx
406c22:	ff 75 0c             	push   0xc(%ebp)
406c25:	ff 75 08             	push   0x8(%ebp)
406c28:	ff d7                	call   *%edi
406c2a:	ff 75 18             	push   0x18(%ebp)
406c2d:	ff 15 dc a0 40 00    	call   *0x40a0dc
406c33:	8b 45 fc             	mov    -0x4(%ebp),%eax
406c36:	5f                   	pop    %edi
406c37:	5e                   	pop    %esi
406c38:	5b                   	pop    %ebx
406c39:	c9                   	leave
406c3a:	c3                   	ret
406c3b:	56                   	push   %esi
406c3c:	8b 74 24 08          	mov    0x8(%esp),%esi
406c40:	57                   	push   %edi
406c41:	33 ff                	xor    %edi,%edi
406c43:	56                   	push   %esi
406c44:	ff 96 04 01 00 00    	call   *0x104(%esi)
406c4a:	85 c0                	test   %eax,%eax
406c4c:	74 11                	je     0x406c5f
406c4e:	50                   	push   %eax
406c4f:	ff 96 08 01 00 00    	call   *0x108(%esi)
406c55:	85 c0                	test   %eax,%eax
406c57:	75 06                	jne    0x406c5f
406c59:	47                   	inc    %edi
406c5a:	83 ff 14             	cmp    $0x14,%edi
406c5d:	7c e4                	jl     0x406c43
406c5f:	56                   	push   %esi
406c60:	ff 96 04 01 00 00    	call   *0x104(%esi)
406c66:	5f                   	pop    %edi
406c67:	5e                   	pop    %esi
406c68:	c2 04 00             	ret    $0x4
406c6b:	b8 b8 94 40 00       	mov    $0x4094b8,%eax
406c70:	e8 bb 22 00 00       	call   0x408f30
406c75:	83 ec 1c             	sub    $0x1c,%esp
406c78:	53                   	push   %ebx
406c79:	56                   	push   %esi
406c7a:	57                   	push   %edi
406c7b:	8b f9                	mov    %ecx,%edi
406c7d:	89 65 f0             	mov    %esp,-0x10(%ebp)
406c80:	57                   	push   %edi
406c81:	ff b7 f0 01 00 00    	push   0x1f0(%edi)
406c87:	33 f6                	xor    %esi,%esi
406c89:	89 75 fc             	mov    %esi,-0x4(%ebp)
406c8c:	ff 15 94 a2 40 00    	call   *0x40a294
406c92:	8d 45 dc             	lea    -0x24(%ebp),%eax
406c95:	50                   	push   %eax
406c96:	8d 45 ec             	lea    -0x14(%ebp),%eax
406c99:	50                   	push   %eax
406c9a:	56                   	push   %esi
406c9b:	68 3f 00 0f 00       	push   $0xf003f
406ca0:	56                   	push   %esi
406ca1:	56                   	push   %esi
406ca2:	56                   	push   %esi
406ca3:	68 38 a3 40 00       	push   $0x40a338
406ca8:	68 01 00 00 80       	push   $0x80000001
406cad:	ff 15 2c a0 40 00    	call   *0x40a02c
406cb3:	3b c6                	cmp    %esi,%eax
406cb5:	74 11                	je     0x406cc8
406cb7:	8d 45 e8             	lea    -0x18(%ebp),%eax
406cba:	68 d8 a5 40 00       	push   $0x40a5d8
406cbf:	50                   	push   %eax
406cc0:	89 75 e8             	mov    %esi,-0x18(%ebp)
406cc3:	e8 6e 22 00 00       	call   0x408f36
406cc8:	6a 28                	push   $0x28
406cca:	57                   	push   %edi
406ccb:	6a 03                	push   $0x3
406ccd:	56                   	push   %esi
406cce:	68 54 a3 40 00       	push   $0x40a354
406cd3:	ff 75 ec             	push   -0x14(%ebp)
406cd6:	ff 15 08 a0 40 00    	call   *0x40a008
406cdc:	ff 75 ec             	push   -0x14(%ebp)
406cdf:	8b f8                	mov    %eax,%edi
406ce1:	ff 15 00 a0 40 00    	call   *0x40a000
406ce7:	3b fe                	cmp    %esi,%edi
406ce9:	74 11                	je     0x406cfc
406ceb:	8d 45 e4             	lea    -0x1c(%ebp),%eax
406cee:	68 d8 a5 40 00       	push   $0x40a5d8
406cf3:	50                   	push   %eax
406cf4:	89 75 e4             	mov    %esi,-0x1c(%ebp)
406cf7:	e8 3a 22 00 00       	call   0x408f36
406cfc:	8d 45 e0             	lea    -0x20(%ebp),%eax
406cff:	68 d8 a5 40 00       	push   $0x40a5d8
406d04:	50                   	push   %eax
406d05:	c7 45 e0 01 00 00 00 	movl   $0x1,-0x20(%ebp)
406d0c:	e8 25 22 00 00       	call   0x408f36
406d11:	b8 17 6d 40 00       	mov    $0x406d17,%eax
406d16:	c3                   	ret
406d17:	8b 4d f4             	mov    -0xc(%ebp),%ecx
406d1a:	8b 45 d8             	mov    -0x28(%ebp),%eax
406d1d:	5f                   	pop    %edi
406d1e:	5e                   	pop    %esi
406d1f:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
406d26:	5b                   	pop    %ebx
406d27:	c9                   	leave
406d28:	c3                   	ret
406d29:	b8 c4 94 40 00       	mov    $0x4094c4,%eax
406d2e:	e8 fd 21 00 00       	call   0x408f30
406d33:	83 ec 48             	sub    $0x48,%esp
406d36:	53                   	push   %ebx
406d37:	56                   	push   %esi
406d38:	57                   	push   %edi
406d39:	8d 45 ec             	lea    -0x14(%ebp),%eax
406d3c:	89 65 f0             	mov    %esp,-0x10(%ebp)
406d3f:	33 db                	xor    %ebx,%ebx
406d41:	50                   	push   %eax
406d42:	68 3f 00 0f 00       	push   $0xf003f
406d47:	53                   	push   %ebx
406d48:	8b f1                	mov    %ecx,%esi
406d4a:	68 38 a3 40 00       	push   $0x40a338
406d4f:	68 01 00 00 80       	push   $0x80000001
406d54:	89 75 c4             	mov    %esi,-0x3c(%ebp)
406d57:	89 5d fc             	mov    %ebx,-0x4(%ebp)
406d5a:	ff 15 04 a0 40 00    	call   *0x40a004
406d60:	3b c3                	cmp    %ebx,%eax
406d62:	74 11                	je     0x406d75
406d64:	8d 45 e8             	lea    -0x18(%ebp),%eax
406d67:	68 d8 a5 40 00       	push   $0x40a5d8
406d6c:	50                   	push   %eax
406d6d:	89 5d e8             	mov    %ebx,-0x18(%ebp)
406d70:	e8 c1 21 00 00       	call   0x408f36
406d75:	8d 45 e4             	lea    -0x1c(%ebp),%eax
406d78:	c7 45 e4 28 00 00 00 	movl   $0x28,-0x1c(%ebp)
406d7f:	50                   	push   %eax
406d80:	8d 45 c0             	lea    -0x40(%ebp),%eax
406d83:	56                   	push   %esi
406d84:	50                   	push   %eax
406d85:	53                   	push   %ebx
406d86:	68 54 a3 40 00       	push   $0x40a354
406d8b:	ff 75 ec             	push   -0x14(%ebp)
406d8e:	ff 15 30 a0 40 00    	call   *0x40a030
406d94:	ff 75 ec             	push   -0x14(%ebp)
406d97:	8b f8                	mov    %eax,%edi
406d99:	ff 15 00 a0 40 00    	call   *0x40a000
406d9f:	3b fb                	cmp    %ebx,%edi
406da1:	74 11                	je     0x406db4
406da3:	8d 45 e0             	lea    -0x20(%ebp),%eax
406da6:	68 d8 a5 40 00       	push   $0x40a5d8
406dab:	50                   	push   %eax
406dac:	89 5d e0             	mov    %ebx,-0x20(%ebp)
406daf:	e8 82 21 00 00       	call   0x408f36
406db4:	8b 46 10             	mov    0x10(%esi),%eax
406db7:	3d d9 04 00 00       	cmp    $0x4d9,%eax
406dbc:	7d 18                	jge    0x406dd6
406dbe:	3d dc 04 00 00       	cmp    $0x4dc,%eax
406dc3:	7e 11                	jle    0x406dd6
406dc5:	8d 45 dc             	lea    -0x24(%ebp),%eax
406dc8:	68 d8 a5 40 00       	push   $0x40a5d8
406dcd:	50                   	push   %eax
406dce:	89 5d dc             	mov    %ebx,-0x24(%ebp)
406dd1:	e8 60 21 00 00       	call   0x408f36
406dd6:	8b 46 20             	mov    0x20(%esi),%eax
406dd9:	3d d1 04 00 00       	cmp    $0x4d1,%eax
406dde:	0f 8c 92 00 00 00    	jl     0x406e76
406de4:	3d d4 04 00 00       	cmp    $0x4d4,%eax
406de9:	0f 8f 87 00 00 00    	jg     0x406e76
406def:	dd 46 18             	fldl   0x18(%esi)
406df2:	dc 1d 30 a3 40 00    	fcompl 0x40a330
406df8:	df e0                	fnstsw %ax
406dfa:	9e                   	sahf
406dfb:	72 68                	jb     0x406e65
406dfd:	dd 46 18             	fldl   0x18(%esi)
406e00:	dc 1d 68 a3 40 00    	fcompl 0x40a368
406e06:	df e0                	fnstsw %ax
406e08:	9e                   	sahf
406e09:	73 5a                	jae    0x406e65
406e0b:	8b 06                	mov    (%esi),%eax
406e0d:	83 f8 f6             	cmp    $0xfffffff6,%eax
406e10:	7c 42                	jl     0x406e54
406e12:	8b 4e 08             	mov    0x8(%esi),%ecx
406e15:	2b c8                	sub    %eax,%ecx
406e17:	83 f9 50             	cmp    $0x50,%ecx
406e1a:	7c 38                	jl     0x406e54
406e1c:	8b 46 04             	mov    0x4(%esi),%eax
406e1f:	83 f8 f6             	cmp    $0xfffffff6,%eax
406e22:	7c 1f                	jl     0x406e43
406e24:	8b 4e 0c             	mov    0xc(%esi),%ecx
406e27:	2b c8                	sub    %eax,%ecx
406e29:	83 f9 3c             	cmp    $0x3c,%ecx
406e2c:	7c 15                	jl     0x406e43
406e2e:	8d 45 d8             	lea    -0x28(%ebp),%eax
406e31:	68 d8 a5 40 00       	push   $0x40a5d8
406e36:	50                   	push   %eax
406e37:	c7 45 d8 01 00 00 00 	movl   $0x1,-0x28(%ebp)
406e3e:	e8 f3 20 00 00       	call   0x408f36
406e43:	8d 45 d4             	lea    -0x2c(%ebp),%eax
406e46:	68 d8 a5 40 00       	push   $0x40a5d8
406e4b:	50                   	push   %eax
406e4c:	89 5d d4             	mov    %ebx,-0x2c(%ebp)
406e4f:	e8 e2 20 00 00       	call   0x408f36
406e54:	8d 45 d0             	lea    -0x30(%ebp),%eax
406e57:	68 d8 a5 40 00       	push   $0x40a5d8
406e5c:	50                   	push   %eax
406e5d:	89 5d d0             	mov    %ebx,-0x30(%ebp)
406e60:	e8 d1 20 00 00       	call   0x408f36
406e65:	8d 45 cc             	lea    -0x34(%ebp),%eax
406e68:	68 d8 a5 40 00       	push   $0x40a5d8
406e6d:	50                   	push   %eax
406e6e:	89 5d cc             	mov    %ebx,-0x34(%ebp)
406e71:	e8 c0 20 00 00       	call   0x408f36
406e76:	8d 45 c8             	lea    -0x38(%ebp),%eax
406e79:	68 d8 a5 40 00       	push   $0x40a5d8
406e7e:	50                   	push   %eax
406e7f:	89 5d c8             	mov    %ebx,-0x38(%ebp)
406e82:	e8 af 20 00 00       	call   0x408f36
406e87:	33 db                	xor    %ebx,%ebx
406e89:	39 5d bc             	cmp    %ebx,-0x44(%ebp)
406e8c:	75 5a                	jne    0x406ee8
406e8e:	8d 45 ac             	lea    -0x54(%ebp),%eax
406e91:	53                   	push   %ebx
406e92:	50                   	push   %eax
406e93:	53                   	push   %ebx
406e94:	6a 30                	push   $0x30
406e96:	ff 15 2c a2 40 00    	call   *0x40a22c
406e9c:	8b 45 b4             	mov    -0x4c(%ebp),%eax
406e9f:	8b 4d c4             	mov    -0x3c(%ebp),%ecx
406ea2:	2b 45 ac             	sub    -0x54(%ebp),%eax
406ea5:	bf ee 02 00 00       	mov    $0x2ee,%edi
406eaa:	dd 05 60 a3 40 00    	fldl   0x40a360
406eb0:	2b c7                	sub    %edi,%eax
406eb2:	be 26 02 00 00       	mov    $0x226,%esi
406eb7:	99                   	cltd
406eb8:	dd 59 18             	fstpl  0x18(%ecx)
406ebb:	2b c2                	sub    %edx,%eax
406ebd:	c7 41 10 01 00 00 00 	movl   $0x1,0x10(%ecx)
406ec4:	d1 f8                	sar    $1,%eax
406ec6:	89 01                	mov    %eax,(%ecx)
406ec8:	8b 45 b8             	mov    -0x48(%ebp),%eax
406ecb:	2b 45 b0             	sub    -0x50(%ebp),%eax
406ece:	c7 41 20 d2 04 00 00 	movl   $0x4d2,0x20(%ecx)
406ed5:	89 79 08             	mov    %edi,0x8(%ecx)
406ed8:	89 71 0c             	mov    %esi,0xc(%ecx)
406edb:	2b c6                	sub    %esi,%eax
406edd:	88 59 24             	mov    %bl,0x24(%ecx)
406ee0:	99                   	cltd
406ee1:	2b c2                	sub    %edx,%eax
406ee3:	d1 f8                	sar    $1,%eax
406ee5:	89 41 04             	mov    %eax,0x4(%ecx)
406ee8:	b8 ee 6e 40 00       	mov    $0x406eee,%eax
406eed:	c3                   	ret
406eee:	8b 4d f4             	mov    -0xc(%ebp),%ecx
406ef1:	5f                   	pop    %edi
406ef2:	5e                   	pop    %esi
406ef3:	32 c0                	xor    %al,%al
406ef5:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
406efc:	5b                   	pop    %ebx
406efd:	c9                   	leave
406efe:	c3                   	ret
406eff:	53                   	push   %ebx
406f00:	55                   	push   %ebp
406f01:	56                   	push   %esi
406f02:	57                   	push   %edi
406f03:	8b f1                	mov    %ecx,%esi
406f05:	6a 01                	push   $0x1
406f07:	ff b6 f0 01 00 00    	push   0x1f0(%esi)
406f0d:	ff 15 20 a2 40 00    	call   *0x40a220
406f13:	50                   	push   %eax
406f14:	ff 15 c8 a2 40 00    	call   *0x40a2c8
406f1a:	8b 7c 24 14          	mov    0x14(%esp),%edi
406f1e:	8b d8                	mov    %eax,%ebx
406f20:	85 ff                	test   %edi,%edi
406f22:	bd 2c 01 00 00       	mov    $0x12c,%ebp
406f27:	74 1e                	je     0x406f47
406f29:	6a 00                	push   $0x0
406f2b:	ff 76 20             	push   0x20(%esi)
406f2e:	53                   	push   %ebx
406f2f:	e8 27 1f 00 00       	call   0x408e5b
406f34:	83 c4 0c             	add    $0xc,%esp
406f37:	89 7e 20             	mov    %edi,0x20(%esi)
406f3a:	55                   	push   %ebp
406f3b:	ff b6 f0 01 00 00    	push   0x1f0(%esi)
406f41:	ff 15 24 a2 40 00    	call   *0x40a224
406f47:	6a 01                	push   $0x1
406f49:	ff 76 20             	push   0x20(%esi)
406f4c:	53                   	push   %ebx
406f4d:	e8 09 1f 00 00       	call   0x408e5b
406f52:	8b 46 20             	mov    0x20(%esi),%eax
406f55:	83 c4 0c             	add    $0xc,%esp
406f58:	2d d1 04 00 00       	sub    $0x4d1,%eax
406f5d:	74 2d                	je     0x406f8c
406f5f:	48                   	dec    %eax
406f60:	74 1e                	je     0x406f80
406f62:	48                   	dec    %eax
406f63:	74 0f                	je     0x406f74
406f65:	48                   	dec    %eax
406f66:	75 2e                	jne    0x406f96
406f68:	c7 86 c0 00 00 00 88 	movl   $0x1388,0xc0(%esi)
406f6f:	13 00 00
406f72:	eb 22                	jmp    0x406f96
406f74:	c7 86 c0 00 00 00 d0 	movl   $0x7d0,0xc0(%esi)
406f7b:	07 00 00
406f7e:	eb 16                	jmp    0x406f96
406f80:	c7 86 c0 00 00 00 e8 	movl   $0x3e8,0xc0(%esi)
406f87:	03 00 00
406f8a:	eb 0a                	jmp    0x406f96
406f8c:	c7 86 c0 00 00 00 f4 	movl   $0x1f4,0xc0(%esi)
406f93:	01 00 00
406f96:	6a 00                	push   $0x0
406f98:	ff b6 c0 00 00 00    	push   0xc0(%esi)
406f9e:	55                   	push   %ebp
406f9f:	ff b6 f0 01 00 00    	push   0x1f0(%esi)
406fa5:	ff 15 28 a2 40 00    	call   *0x40a228
406fab:	5f                   	pop    %edi
406fac:	5e                   	pop    %esi
406fad:	5d                   	pop    %ebp
406fae:	5b                   	pop    %ebx
406faf:	c2 04 00             	ret    $0x4
406fb2:	55                   	push   %ebp