407bc8:	f7 de                	neg    %esi
407bca:	ff 15 78 11 40 00    	call   *0x401178
407bd0:	83 c4 0c             	add    $0xc,%esp
407bd3:	8d 4d 84             	lea    -0x7c(%ebp),%ecx
407bd6:	ff 15 1c 10 40 00    	call   *0x40101c
407bdc:	66 3b f7             	cmp    %di,%si
407bdf:	0f 84 e9 00 00 00    	je     0x407cce
407be5:	57                   	push   %edi
407be6:	68 20 63 40 00       	push   $0x406320
407beb:	8d 4d ac             	lea    -0x54(%ebp),%ecx
407bee:	51                   	push   %ecx
407bef:	8d 55 84             	lea    -0x7c(%ebp),%edx
407bf2:	52                   	push   %edx
407bf3:	ff 15 9c 11 40 00    	call   *0x40119c
407bf9:	a1 38 b3 40 00       	mov    0x40b338,%eax
407bfe:	83 c4 10             	add    $0x10,%esp
407c01:	3b c7                	cmp    %edi,%eax
407c03:	75 10                	jne    0x407c15
407c05:	68 38 b3 40 00       	push   $0x40b338
407c0a:	68 c4 60 40 00       	push   $0x4060c4
407c0f:	ff 15 4c 11 40 00    	call   *0x40114c
407c15:	8b 35 38 b3 40 00    	mov    0x40b338,%esi
407c1b:	8b 06                	mov    (%esi),%eax
407c1d:	8d 4d 98             	lea    -0x68(%ebp),%ecx
407c20:	51                   	push   %ecx
407c21:	56                   	push   %esi
407c22:	ff 50 1c             	call   *0x1c(%eax)
407c25:	db e2                	fnclex
407c27:	3b c7                	cmp    %edi,%eax
407c29:	7d 0f                	jge    0x407c3a
407c2b:	6a 1c                	push   $0x1c
407c2d:	68 b4 60 40 00       	push   $0x4060b4
407c32:	56                   	push   %esi
407c33:	50                   	push   %eax
407c34:	ff 15 58 10 40 00    	call   *0x401058
407c3a:	8b 45 98             	mov    -0x68(%ebp),%eax
407c3d:	83 ec 10             	sub    $0x10,%esp
407c40:	b9 02 00 00 00       	mov    $0x2,%ecx
407c45:	8b d4                	mov    %esp,%edx
407c47:	89 0a                	mov    %ecx,(%edx)
407c49:	89 8d 64 ff ff ff    	mov    %ecx,-0x9c(%ebp)
407c4f:	8b 8d 70 ff ff ff    	mov    -0x90(%ebp),%ecx
407c55:	89 bd 6c ff ff ff    	mov    %edi,-0x94(%ebp)
407c5b:	8b 30                	mov    (%eax),%esi
407c5d:	89 85 44 ff ff ff    	mov    %eax,-0xbc(%ebp)
407c63:	8b 85 68 ff ff ff    	mov    -0x98(%ebp),%eax
407c69:	89 42 04             	mov    %eax,0x4(%edx)
407c6c:	89 7a 08             	mov    %edi,0x8(%edx)
407c6f:	89 4a 0c             	mov    %ecx,0xc(%edx)
407c72:	68 60 63 40 00       	push   $0x406360
407c77:	8d 55 84             	lea    -0x7c(%ebp),%edx
407c7a:	52                   	push   %edx
407c7b:	ff 15 f8 10 40 00    	call   *0x4010f8
407c81:	50                   	push   %eax
407c82:	8d 45 94             	lea    -0x6c(%ebp),%eax
407c85:	50                   	push   %eax
407c86:	ff 15 84 10 40 00    	call   *0x401084
407c8c:	8b ce                	mov    %esi,%ecx
407c8e:	8b b5 44 ff ff ff    	mov    -0xbc(%ebp),%esi
407c94:	50                   	push   %eax
407c95:	56                   	push   %esi
407c96:	ff 51 58             	call   *0x58(%ecx)
407c99:	db e2                	fnclex
407c9b:	3b c7                	cmp    %edi,%eax
407c9d:	7d 0f                	jge    0x407cae
407c9f:	6a 58                	push   $0x58
407ca1:	68 d8 62 40 00       	push   $0x4062d8
407ca6:	56                   	push   %esi
407ca7:	50                   	push   %eax
407ca8:	ff 15 58 10 40 00    	call   *0x401058
407cae:	8d 55 98             	lea    -0x68(%ebp),%edx
407cb1:	52                   	push   %edx
407cb2:	8d 45 94             	lea    -0x6c(%ebp),%eax
407cb5:	50                   	push   %eax
407cb6:	6a 02                	push   $0x2
407cb8:	ff 15 40 10 40 00    	call   *0x401040
407cbe:	8b 35 1c 10 40 00    	mov    0x40101c,%esi
407cc4:	83 c4 0c             	add    $0xc,%esp
407cc7:	8d 4d 84             	lea    -0x7c(%ebp),%ecx
407cca:	ff d6                	call   *%esi
407ccc:	eb 06                	jmp    0x407cd4
407cce:	8b 35 1c 10 40 00    	mov    0x40101c,%esi
407cd4:	8d 4d 84             	lea    -0x7c(%ebp),%ecx
407cd7:	51                   	push   %ecx
407cd8:	ff 15 8c 11 40 00    	call   *0x40118c
407cde:	6a 01                	push   $0x1
407ce0:	8d 55 84             	lea    -0x7c(%ebp),%edx
407ce3:	52                   	push   %edx
407ce4:	8d 85 74 ff ff ff    	lea    -0x8c(%ebp),%eax
407cea:	50                   	push   %eax
407ceb:	ff 15 50 10 40 00    	call   *0x401050
407cf1:	8d 95 74 ff ff ff    	lea    -0x8c(%ebp),%edx
407cf7:	8d 4d dc             	lea    -0x24(%ebp),%ecx
407cfa:	ff 15 10 10 40 00    	call   *0x401010
407d00:	8d 4d 84             	lea    -0x7c(%ebp),%ecx
407d03:	ff d6                	call   *%esi
407d05:	57                   	push   %edi
407d06:	57                   	push   %edi
407d07:	6a 01                	push   $0x1
407d09:	ff 15 a4 10 40 00    	call   *0x4010a4
407d0f:	8b d0                	mov    %eax,%edx
407d11:	8d 4d a8             	lea    -0x58(%ebp),%ecx
407d14:	ff d3                	call   *%ebx
407d16:	68 74 63 40 00       	push   $0x406374
407d1b:	68 7c 63 40 00       	push   $0x40637c
407d20:	ff 15 4c 10 40 00    	call   *0x40104c
407d26:	8b d0                	mov    %eax,%edx
407d28:	8d 4d a0             	lea    -0x60(%ebp),%ecx
407d2b:	ff d3                	call   *%ebx
407d2d:	50                   	push   %eax
407d2e:	ff 15 74 11 40 00    	call   *0x401174
407d34:	50                   	push   %eax
407d35:	8d 4d 84             	lea    -0x7c(%ebp),%ecx
407d38:	51                   	push   %ecx
407d39:	ff 15 34 10 40 00    	call   *0x401034
407d3f:	8d 55 84             	lea    -0x7c(%ebp),%edx
407d42:	52                   	push   %edx
407d43:	8d 85 64 ff ff ff    	lea    -0x9c(%ebp),%eax
407d49:	50                   	push   %eax
407d4a:	c7 85 6c ff ff ff 54 	movl   $0x406054,-0x94(%ebp)
407d51:	60 40 00
407d54:	c7 85 64 ff ff ff 08 	movl   $0x8008,-0x9c(%ebp)
407d5b:	80 00 00
407d5e:	ff 15 88 11 40 00    	call   *0x401188
407d64:	8d 4d a0             	lea    -0x60(%ebp),%ecx
407d67:	66 89 85 4c ff ff ff 	mov    %ax,-0xb4(%ebp)
407d6e:	ff 15 cc 11 40 00    	call   *0x4011cc
407d74:	8d 4d 84             	lea    -0x7c(%ebp),%ecx
407d77:	ff d6                	call   *%esi
407d79:	66 39 bd 4c ff ff ff 	cmp    %di,-0xb4(%ebp)
407d80:	74 48                	je     0x407dca
407d82:	8b 75 08             	mov    0x8(%ebp),%esi
407d85:	dd 05 08 12 40 00    	fldl   0x401208
407d8b:	8b 0e                	mov    (%esi),%ecx
407d8d:	df e0                	fnstsw %ax
407d8f:	a8 0d                	test   $0xd,%al
407d91:	0f 85 54 01 00 00    	jne    0x407eeb
407d97:	d9 9d 30 ff ff ff    	fstps  -0xd0(%ebp)
407d9d:	d9 85 30 ff ff ff    	flds   -0xd0(%ebp)
407da3:	51                   	push   %ecx
407da4:	d9 1c 24             	fstps  (%esp)
407da7:	56                   	push   %esi
407da8:	ff 91 84 00 00 00    	call   *0x84(%ecx)
407dae:	db e2                	fnclex
407db0:	3b c7                	cmp    %edi,%eax
407db2:	7d 16                	jge    0x407dca
407db4:	68 84 00 00 00       	push   $0x84
407db9:	68 ec 5e 40 00       	push   $0x405eec
407dbe:	56                   	push   %esi
407dbf:	8b 35 58 10 40 00    	mov    0x401058,%esi
407dc5:	50                   	push   %eax
407dc6:	ff d6                	call   *%esi
407dc8:	eb 06                	jmp    0x407dd0
407dca:	8b 35 58 10 40 00    	mov    0x401058,%esi
407dd0:	ff 15 94 11 40 00    	call   *0x401194
407dd6:	8b d0                	mov    %eax,%edx
407dd8:	8d 4d bc             	lea    -0x44(%ebp),%ecx
407ddb:	ff d3                	call   *%ebx
407ddd:	39 3d 38 b3 40 00    	cmp    %edi,0x40b338
407de3:	75 10                	jne    0x407df5
407de5:	68 38 b3 40 00       	push   $0x40b338
407dea:	68 c4 60 40 00       	push   $0x4060c4
407def:	ff 15 4c 11 40 00    	call   *0x40114c
407df5:	8b 1d 38 b3 40 00    	mov    0x40b338,%ebx
407dfb:	8b 13                	mov    (%ebx),%edx
407dfd:	8d 45 98             	lea    -0x68(%ebp),%eax
407e00:	50                   	push   %eax
407e01:	53                   	push   %ebx
407e02:	ff 52 14             	call   *0x14(%edx)
407e05:	db e2                	fnclex
407e07:	3b c7                	cmp    %edi,%eax
407e09:	7d 0b                	jge    0x407e16
407e0b:	6a 14                	push   $0x14
407e0d:	68 b4 60 40 00       	push   $0x4060b4
407e12:	53                   	push   %ebx
407e13:	50                   	push   %eax
407e14:	ff d6                	call   *%esi
407e16:	8b 45 98             	mov    -0x68(%ebp),%eax
407e19:	8b 08                	mov    (%eax),%ecx
407e1b:	8d 95 50 ff ff ff    	lea    -0xb0(%ebp),%edx
407e21:	52                   	push   %edx
407e22:	50                   	push   %eax
407e23:	8b d8                	mov    %eax,%ebx
407e25:	ff 91 18 01 00 00    	call   *0x118(%ecx)
407e2b:	db e2                	fnclex
407e2d:	3b c7                	cmp    %edi,%eax
407e2f:	7d 0e                	jge    0x407e3f
407e31:	68 18 01 00 00       	push   $0x118
407e36:	68 d4 60 40 00       	push   $0x4060d4
407e3b:	53                   	push   %ebx
407e3c:	50                   	push   %eax
407e3d:	ff d6                	call   *%esi
407e3f:	8b 8d 50 ff ff ff    	mov    -0xb0(%ebp),%ecx
407e45:	ff 15 e8 10 40 00    	call   *0x4010e8
407e4b:	8d 4d 98             	lea    -0x68(%ebp),%ecx
407e4e:	ff 15 d0 11 40 00    	call   *0x4011d0
407e54:	9b                   	fwait
407e55:	68 cc 7e 40 00       	push   $0x407ecc
407e5a:	eb 37                	jmp    0x407e93
407e5c:	8d 45 9c             	lea    -0x64(%ebp),%eax
407e5f:	50                   	push   %eax
407e60:	8d 4d a0             	lea    -0x60(%ebp),%ecx
407e63:	51                   	push   %ecx
407e64:	6a 02                	push   $0x2
407e66:	ff 15 78 11 40 00    	call   *0x401178
407e6c:	8d 55 94             	lea    -0x6c(%ebp),%edx
407e6f:	52                   	push   %edx
407e70:	8d 45 98             	lea    -0x68(%ebp),%eax
407e73:	50                   	push   %eax
407e74:	6a 02                	push   $0x2
407e76:	ff 15 40 10 40 00    	call   *0x401040
407e7c:	8d 8d 74 ff ff ff    	lea    -0x8c(%ebp),%ecx
407e82:	51                   	push   %ecx
407e83:	8d 55 84             	lea    -0x7c(%ebp),%edx
407e86:	52                   	push   %edx
407e87:	6a 02                	push   $0x2
407e89:	ff 15 28 10 40 00    	call   *0x401028
407e8f:	83 c4 24             	add    $0x24,%esp
407e92:	c3                   	ret
407e93:	8b 35 1c 10 40 00    	mov    0x40101c,%esi
407e99:	8d 4d dc             	lea    -0x24(%ebp),%ecx
407e9c:	ff d6                	call   *%esi
407e9e:	8d 8d 50 ff ff ff    	lea    -0xb0(%ebp),%ecx
407ea4:	51                   	push   %ecx
407ea5:	8d 45 c4             	lea    -0x3c(%ebp),%eax
407ea8:	6a 00                	push   $0x0
407eaa:	89 85 50 ff ff ff    	mov    %eax,-0xb0(%ebp)
407eb0:	ff 15 70 10 40 00    	call   *0x401070
407eb6:	8b 3d cc 11 40 00    	mov    0x4011cc,%edi
407ebc:	8d 4d bc             	lea    -0x44(%ebp),%ecx
407ebf:	ff d7                	call   *%edi
407ec1:	8d 4d ac             	lea    -0x54(%ebp),%ecx
407ec4:	ff d6                	call   *%esi
407ec6:	8d 4d a8             	lea    -0x58(%ebp),%ecx
407ec9:	ff d7                	call   *%edi
407ecb:	c3                   	ret
407ecc:	8b 45 08             	mov    0x8(%ebp),%eax
407ecf:	8b 10                	mov    (%eax),%edx
407ed1:	50                   	push   %eax
407ed2:	ff 52 08             	call   *0x8(%edx)
407ed5:	8b 45 fc             	mov    -0x4(%ebp),%eax
407ed8:	8b 4d ec             	mov    -0x14(%ebp),%ecx
407edb:	5f                   	pop    %edi
407edc:	5e                   	pop    %esi
407edd:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
407ee4:	5b                   	pop    %ebx
407ee5:	8b e5                	mov    %ebp,%esp
407ee7:	5d                   	pop    %ebp
407ee8:	c2 08 00             	ret    $0x8
407eeb:	e9 3c 94 ff ff       	jmp    0x40132c
407ef0:	55                   	push   %ebp
407ef1:	8b ec                	mov    %esp,%ebp
407ef3:	83 ec 08             	sub    $0x8,%esp
407ef6:	68 26 13 40 00       	push   $0x401326
407efb:	64 a1 00 00 00 00    	mov    %fs:0x0,%eax
407f01:	50                   	push   %eax
407f02:	64 89 25 00 00 00 00 	mov    %esp,%fs:0x0
407f09:	81 ec 90 00 00 00    	sub    $0x90,%esp
407f0f:	53                   	push   %ebx
407f10:	56                   	push   %esi
407f11:	57                   	push   %edi
407f12:	89 65 f8             	mov    %esp,-0x8(%ebp)
407f15:	c7 45 fc 50 12 40 00 	movl   $0x401250,-0x4(%ebp)
407f1c:	8b 55 0c             	mov    0xc(%ebp),%edx
407f1f:	8b 35 6c 11 40 00    	mov    0x40116c,%esi
407f25:	33 db                	xor    %ebx,%ebx
407f27:	8d 4d d0             	lea    -0x30(%ebp),%ecx
407f2a:	89 5d ec             	mov    %ebx,-0x14(%ebp)
407f2d:	89 5d e8             	mov    %ebx,-0x18(%ebp)
407f30:	89 5d e4             	mov    %ebx,-0x1c(%ebp)
407f33:	89 5d d4             	mov    %ebx,-0x2c(%ebp)
407f36:	89 5d d0             	mov    %ebx,-0x30(%ebp)
407f39:	89 5d cc             	mov    %ebx,-0x34(%ebp)
407f3c:	89 5d c8             	mov    %ebx,-0x38(%ebp)
407f3f:	89 5d b8             	mov    %ebx,-0x48(%ebp)
407f42:	89 5d a8             	mov    %ebx,-0x58(%ebp)
407f45:	89 5d 98             	mov    %ebx,-0x68(%ebp)
407f48:	89 5d 88             	mov    %ebx,-0x78(%ebp)
407f4b:	89 9d 78 ff ff ff    	mov    %ebx,-0x88(%ebp)
407f51:	ff d6                	call   *%esi
407f53:	8b 55 20             	mov    0x20(%ebp),%edx
407f56:	8d 4d e8             	lea    -0x18(%ebp),%ecx
407f59:	ff d6                	call   *%esi
407f5b:	68 a4 63 40 00       	push   $0x4063a4
407f60:	ff 15 e0 10 40 00    	call   *0x4010e0
407f66:	d8 1d 48 12 40 00    	fcomps 0x401248
407f6c:	8b 7d 08             	mov    0x8(%ebp),%edi
407f6f:	df e0                	fnstsw %ax
407f71:	f6 c4 40             	test   $0x40,%ah
407f74:	0f 85 8e 00 00 00    	jne    0x408008
407f7a:	dd 05 40 12 40 00    	fldl   0x401240
407f80:	8b 37                	mov    (%edi),%esi
407f82:	83 3d 00 b0 40 00 00 	cmpl   $0x0,0x40b000
407f89:	75 08                	jne    0x407f93
407f8b:	dc 35 38 12 40 00    	fdivl  0x401238
407f91:	eb 11                	jmp    0x407fa4
407f93:	ff 35 3c 12 40 00    	push   0x40123c
407f99:	ff 35 38 12 40 00    	push   0x401238
407f9f:	e8 a0 93 ff ff       	call   0x401344
407fa4:	68 00 00 ae 42       	push   $0x42ae0000
407fa9:	51                   	push   %ecx
407faa:	df e0                	fnstsw %ax
407fac:	a8 0d                	test   $0xd,%al
407fae:	0f 85 5c 03 00 00    	jne    0x408310
407fb4:	d9 9d 68 ff ff ff    	fstps  -0x98(%ebp)
407fba:	d9 85 68 ff ff ff    	flds   -0x98(%ebp)
407fc0:	d9 1c 24             	fstps  (%esp)
407fc3:	68 00 00 e6 42       	push   $0x42e60000
407fc8:	dd 05 30 12 40 00    	fldl   0x401230
407fce:	ff 15 a0 11 40 00    	call   *0x4011a0
407fd4:	50                   	push   %eax
407fd5:	68 00 00 48 42       	push   $0x42480000
407fda:	68 04 1a aa 4a       	push   $0x4aaa1a04
407fdf:	68 dc 62 ab 4a       	push   $0x4aab62dc
407fe4:	68 c2 01 00 00       	push   $0x1c2
407fe9:	57                   	push   %edi
407fea:	ff 96 c0 02 00 00    	call   *0x2c0(%esi)
407ff0:	db e2                	fnclex
407ff2:	3b c3                	cmp    %ebx,%eax
407ff4:	7d 12                	jge    0x408008
407ff6:	68 c0 02 00 00       	push   $0x2c0
407ffb:	68 ec 5e 40 00       	push   $0x405eec
408000:	57                   	push   %edi
408001:	50                   	push   %eax
408002:	ff 15 58 10 40 00    	call   *0x401058
408008:	8d 55 88             	lea    -0x78(%ebp),%edx
40800b:	8d 4d b8             	lea    -0x48(%ebp),%ecx
40800e:	c7 45 90 84 62 40 00 	movl   $0x406284,-0x70(%ebp)
408015:	c7 45 88 08 00 00 00 	movl   $0x8,-0x78(%ebp)
40801c:	ff 15 98 11 40 00    	call   *0x401198
408022:	8d 45 a8             	lea    -0x58(%ebp),%eax
408025:	50                   	push   %eax
408026:	8d 4d b8             	lea    -0x48(%ebp),%ecx
408029:	51                   	push   %ecx
40802a:	ff 15 f4 10 40 00    	call   *0x4010f4
408030:	3b c3                	cmp    %ebx,%eax
408032:	7d 07                	jge    0x40803b
408034:	50                   	push   %eax
408035:	ff 15 14 10 40 00    	call   *0x401014
40803b:	8d 55 a8             	lea    -0x58(%ebp),%edx
40803e:	52                   	push   %edx
40803f:	8d 85 78 ff ff ff    	lea    -0x88(%ebp),%eax
408045:	50                   	push   %eax
408046:	c7 45 80 02 00 00 00 	movl   $0x2,-0x80(%ebp)
40804d:	c7 85 78 ff ff ff 02 	movl   $0x8002,-0x88(%ebp)
408054:	80 00 00
408057:	ff 15 88 11 40 00    	call   *0x401188
40805d:	8d 4d a8             	lea    -0x58(%ebp),%ecx
408060:	51                   	push   %ecx
408061:	8d 55 b8             	lea    -0x48(%ebp),%edx