40e966:	50                   	push   %eax
40e967:	8d 8d 5c ff ff ff    	lea    -0xa4(%ebp),%ecx
40e96d:	51                   	push   %ecx
40e96e:	6a 02                	push   $0x2
40e970:	f7 da                	neg    %edx
40e972:	8b f2                	mov    %edx,%esi
40e974:	ff 15 04 11 40 00    	call   *0x401104
40e97a:	83 c4 0c             	add    $0xc,%esp
40e97d:	66 3b f3             	cmp    %bx,%si
40e980:	74 43                	je     0x40e9c5
40e982:	8d 95 fc fe ff ff    	lea    -0x104(%ebp),%edx
40e988:	8d 8d 40 ff ff ff    	lea    -0xc0(%ebp),%ecx
40e98e:	c7 85 04 ff ff ff d0 	movl   $0x40dad0,-0xfc(%ebp)
40e995:	da 40 00
40e998:	c7 85 fc fe ff ff 08 	movl   $0x8,-0x104(%ebp)
40e99f:	00 00 00
40e9a2:	ff 15 2c 11 40 00    	call   *0x40112c
40e9a8:	6a 02                	push   $0x2
40e9aa:	8d 95 40 ff ff ff    	lea    -0xc0(%ebp),%edx
40e9b0:	52                   	push   %edx
40e9b1:	ff 15 b0 10 40 00    	call   *0x4010b0
40e9b7:	dd d8                	fstp   %st(0)
40e9b9:	8d 8d 40 ff ff ff    	lea    -0xc0(%ebp),%ecx
40e9bf:	ff 15 14 10 40 00    	call   *0x401014
40e9c5:	68 ec da 40 00       	push   $0x40daec
40e9ca:	ff 15 00 11 40 00    	call   *0x401100
40e9d0:	83 f8 02             	cmp    $0x2,%eax
40e9d3:	0f 84 ab 00 00 00    	je     0x40ea84
40e9d9:	39 1d 20 07 41 00    	cmp    %ebx,0x410720
40e9df:	75 10                	jne    0x40e9f1
40e9e1:	68 20 07 41 00       	push   $0x410720
40e9e6:	68 94 d9 40 00       	push   $0x40d994
40e9eb:	ff 15 e8 10 40 00    	call   *0x4010e8
40e9f1:	8b 35 20 07 41 00    	mov    0x410720,%esi
40e9f7:	8b 06                	mov    (%esi),%eax
40e9f9:	8d 8d 54 ff ff ff    	lea    -0xac(%ebp),%ecx
40e9ff:	51                   	push   %ecx
40ea00:	56                   	push   %esi
40ea01:	ff 50 1c             	call   *0x1c(%eax)
40ea04:	db e2                	fnclex
40ea06:	3b c3                	cmp    %ebx,%eax
40ea08:	7d 0f                	jge    0x40ea19
40ea0a:	6a 1c                	push   $0x1c
40ea0c:	68 84 d9 40 00       	push   $0x40d984
40ea11:	56                   	push   %esi
40ea12:	50                   	push   %eax
40ea13:	ff 15 38 10 40 00    	call   *0x401038
40ea19:	8b 85 54 ff ff ff    	mov    -0xac(%ebp),%eax
40ea1f:	83 ec 10             	sub    $0x10,%esp
40ea22:	8b dc                	mov    %esp,%ebx
40ea24:	ba 0a 00 00 00       	mov    $0xa,%edx
40ea29:	89 13                	mov    %edx,(%ebx)
40ea2b:	89 95 fc fe ff ff    	mov    %edx,-0x104(%ebp)
40ea31:	8b 95 00 ff ff ff    	mov    -0x100(%ebp),%edx
40ea37:	b9 04 00 02 80       	mov    $0x80020004,%ecx
40ea3c:	89 53 04             	mov    %edx,0x4(%ebx)
40ea3f:	89 8d 04 ff ff ff    	mov    %ecx,-0xfc(%ebp)
40ea45:	8b 38                	mov    (%eax),%edi
40ea47:	89 4b 08             	mov    %ecx,0x8(%ebx)
40ea4a:	8b 8d 08 ff ff ff    	mov    -0xf8(%ebp),%ecx
40ea50:	68 f4 da 40 00       	push   $0x40daf4
40ea55:	50                   	push   %eax
40ea56:	8b f0                	mov    %eax,%esi
40ea58:	89 4b 0c             	mov    %ecx,0xc(%ebx)
40ea5b:	ff 57 60             	call   *0x60(%edi)
40ea5e:	db e2                	fnclex
40ea60:	33 db                	xor    %ebx,%ebx
40ea62:	3b c3                	cmp    %ebx,%eax
40ea64:	7d 0f                	jge    0x40ea75
40ea66:	6a 60                	push   $0x60
40ea68:	68 1c da 40 00       	push   $0x40da1c
40ea6d:	56                   	push   %esi
40ea6e:	50                   	push   %eax
40ea6f:	ff 15 38 10 40 00    	call   *0x401038
40ea75:	8d 8d 54 ff ff ff    	lea    -0xac(%ebp),%ecx
40ea7b:	ff 15 5c 11 40 00    	call   *0x40115c
40ea81:	8b 7d 08             	mov    0x8(%ebp),%edi
40ea84:	39 1d 20 07 41 00    	cmp    %ebx,0x410720
40ea8a:	75 10                	jne    0x40ea9c
40ea8c:	68 20 07 41 00       	push   $0x410720
40ea91:	68 94 d9 40 00       	push   $0x40d994
40ea96:	ff 15 e8 10 40 00    	call   *0x4010e8
40ea9c:	8b 35 20 07 41 00    	mov    0x410720,%esi
40eaa2:	8b 16                	mov    (%esi),%edx
40eaa4:	8d 85 54 ff ff ff    	lea    -0xac(%ebp),%eax
40eaaa:	50                   	push   %eax
40eaab:	56                   	push   %esi
40eaac:	ff 52 14             	call   *0x14(%edx)
40eaaf:	db e2                	fnclex
40eab1:	3b c3                	cmp    %ebx,%eax
40eab3:	7d 0f                	jge    0x40eac4
40eab5:	6a 14                	push   $0x14
40eab7:	68 84 d9 40 00       	push   $0x40d984
40eabc:	56                   	push   %esi
40eabd:	50                   	push   %eax
40eabe:	ff 15 38 10 40 00    	call   *0x401038
40eac4:	8b 85 54 ff ff ff    	mov    -0xac(%ebp),%eax
40eaca:	8b 08                	mov    (%eax),%ecx
40eacc:	6a 01                	push   $0x1
40eace:	68 44 db 40 00       	push   $0x40db44
40ead3:	50                   	push   %eax
40ead4:	8b f0                	mov    %eax,%esi
40ead6:	ff 91 38 01 00 00    	call   *0x138(%ecx)
40eadc:	db e2                	fnclex
40eade:	3b c3                	cmp    %ebx,%eax
40eae0:	7d 12                	jge    0x40eaf4
40eae2:	68 38 01 00 00       	push   $0x138
40eae7:	68 b4 d9 40 00       	push   $0x40d9b4
40eaec:	56                   	push   %esi
40eaed:	50                   	push   %eax
40eaee:	ff 15 38 10 40 00    	call   *0x401038
40eaf4:	8d 8d 54 ff ff ff    	lea    -0xac(%ebp),%ecx
40eafa:	ff 15 5c 11 40 00    	call   *0x40115c
40eb00:	8d 95 40 ff ff ff    	lea    -0xc0(%ebp),%edx
40eb06:	52                   	push   %edx
40eb07:	c7 85 48 ff ff ff f3 	movl   $0x61f3,-0xb8(%ebp)
40eb0e:	61 00 00
40eb11:	c7 85 40 ff ff ff 02 	movl   $0x2,-0xc0(%ebp)
40eb18:	00 00 00
40eb1b:	ff 15 54 10 40 00    	call   *0x401054
40eb21:	33 f6                	xor    %esi,%esi
40eb23:	66 8b f0             	mov    %ax,%si
40eb26:	66 f7 de             	neg    %si
40eb29:	8d 8d 40 ff ff ff    	lea    -0xc0(%ebp),%ecx
40eb2f:	1b f6                	sbb    %esi,%esi
40eb31:	f7 de                	neg    %esi
40eb33:	f7 de                	neg    %esi
40eb35:	ff 15 14 10 40 00    	call   *0x401014
40eb3b:	66 3b f3             	cmp    %bx,%si
40eb3e:	74 1f                	je     0x40eb5f
40eb40:	53                   	push   %ebx
40eb41:	68 74 db 40 00       	push   $0x40db74
40eb46:	8d 85 40 ff ff ff    	lea    -0xc0(%ebp),%eax
40eb4c:	50                   	push   %eax
40eb4d:	ff 15 cc 10 40 00    	call   *0x4010cc
40eb53:	8d 8d 40 ff ff ff    	lea    -0xc0(%ebp),%ecx
40eb59:	ff 15 14 10 40 00    	call   *0x401014
40eb5f:	6a 02                	push   $0x2
40eb61:	68 c8 d9 40 00       	push   $0x40d9c8
40eb66:	68 a0 da 40 00       	push   $0x40daa0
40eb6b:	ff 15 30 10 40 00    	call   *0x401030
40eb71:	8b d0                	mov    %eax,%edx
40eb73:	8d 8d 5c ff ff ff    	lea    -0xa4(%ebp),%ecx
40eb79:	ff 15 48 11 40 00    	call   *0x401148
40eb7f:	50                   	push   %eax
40eb80:	68 ac da 40 00       	push   $0x40daac
40eb85:	53                   	push   %ebx
40eb86:	ff 15 28 11 40 00    	call   *0x401128
40eb8c:	33 c9                	xor    %ecx,%ecx
40eb8e:	83 f8 05             	cmp    $0x5,%eax
40eb91:	0f 95 c1             	setne  %cl
40eb94:	f7 d9                	neg    %ecx
40eb96:	8b f1                	mov    %ecx,%esi
40eb98:	8d 8d 5c ff ff ff    	lea    -0xa4(%ebp),%ecx
40eb9e:	ff 15 58 11 40 00    	call   *0x401158
40eba4:	66 3b f3             	cmp    %bx,%si
40eba7:	74 0b                	je     0x40ebb4
40eba9:	68 d0 db 40 00       	push   $0x40dbd0
40ebae:	ff 15 d8 10 40 00    	call   *0x4010d8
40ebb4:	68 2c dc 40 00       	push   $0x40dc2c
40ebb9:	68 2c dc 40 00       	push   $0x40dc2c
40ebbe:	ff 15 30 10 40 00    	call   *0x401030
40ebc4:	8b d0                	mov    %eax,%edx
40ebc6:	8d 8d 5c ff ff ff    	lea    -0xa4(%ebp),%ecx
40ebcc:	ff 15 48 11 40 00    	call   *0x401148
40ebd2:	8b 1d 30 11 40 00    	mov    0x401130,%ebx
40ebd8:	50                   	push   %eax
40ebd9:	68 2c dc 40 00       	push   $0x40dc2c
40ebde:	6a 00                	push   $0x0
40ebe0:	ff d3                	call   *%ebx
40ebe2:	33 f6                	xor    %esi,%esi
40ebe4:	66 8b f0             	mov    %ax,%si
40ebe7:	66 4e                	dec    %si
40ebe9:	66 f7 de             	neg    %si
40ebec:	8d 8d 5c ff ff ff    	lea    -0xa4(%ebp),%ecx
40ebf2:	1b f6                	sbb    %esi,%esi
40ebf4:	f7 de                	neg    %esi
40ebf6:	f7 de                	neg    %esi
40ebf8:	ff 15 58 11 40 00    	call   *0x401158
40ebfe:	66 85 f6             	test   %si,%si
40ec01:	0f 84 8e 00 00 00    	je     0x40ec95
40ec07:	dd 05 80 11 40 00    	fldl   0x401180
40ec0d:	8b 37                	mov    (%edi),%esi
40ec0f:	83 3d 00 00 41 00 00 	cmpl   $0x0,0x410000
40ec16:	75 08                	jne    0x40ec20
40ec18:	dc 35 78 11 40 00    	fdivl  0x401178
40ec1e:	eb 11                	jmp    0x40ec31
40ec20:	ff 35 7c 11 40 00    	push   0x40117c
40ec26:	ff 35 78 11 40 00    	push   0x401178
40ec2c:	e8 c3 25 ff ff       	call   0x4011f4
40ec31:	68 00 00 b6 42       	push   $0x42b60000
40ec36:	51                   	push   %ecx
40ec37:	df e0                	fnstsw %ax
40ec39:	a8 0d                	test   $0xd,%al
40ec3b:	0f 85 52 09 00 00    	jne    0x40f593
40ec41:	d9 9d 68 fe ff ff    	fstps  -0x198(%ebp)
40ec47:	d9 85 68 fe ff ff    	flds   -0x198(%ebp)
40ec4d:	d9 1c 24             	fstps  (%esp)
40ec50:	68 00 00 57 43       	push   $0x43570000
40ec55:	dd 05 70 11 40 00    	fldl   0x401170
40ec5b:	ff 15 34 11 40 00    	call   *0x401134
40ec61:	50                   	push   %eax
40ec62:	68 00 00 5d 43       	push   $0x435d0000
40ec67:	68 c0 ac 50 4a       	push   $0x4a50acc0
40ec6c:	68 a8 58 d2 49       	push   $0x49d258a8
40ec71:	68 c2 01 00 00       	push   $0x1c2
40ec76:	57                   	push   %edi
40ec77:	ff 96 c0 02 00 00    	call   *0x2c0(%esi)
40ec7d:	db e2                	fnclex
40ec7f:	85 c0                	test   %eax,%eax
40ec81:	7d 12                	jge    0x40ec95
40ec83:	68 c0 02 00 00       	push   $0x2c0
40ec88:	68 9c d7 40 00       	push   $0x40d79c
40ec8d:	57                   	push   %edi
40ec8e:	50                   	push   %eax
40ec8f:	ff 15 38 10 40 00    	call   *0x401038
40ec95:	68 2c dc 40 00       	push   $0x40dc2c
40ec9a:	68 2c dc 40 00       	push   $0x40dc2c
40ec9f:	ff 15 30 10 40 00    	call   *0x401030
40eca5:	8b d0                	mov    %eax,%edx
40eca7:	8d 8d 5c ff ff ff    	lea    -0xa4(%ebp),%ecx
40ecad:	ff 15 48 11 40 00    	call   *0x401148
40ecb3:	50                   	push   %eax
40ecb4:	68 2c dc 40 00       	push   $0x40dc2c
40ecb9:	6a 00                	push   $0x0
40ecbb:	ff d3                	call   *%ebx
40ecbd:	33 f6                	xor    %esi,%esi
40ecbf:	66 8b f0             	mov    %ax,%si
40ecc2:	66 4e                	dec    %si
40ecc4:	66 f7 de             	neg    %si
40ecc7:	8d 8d 5c ff ff ff    	lea    -0xa4(%ebp),%ecx
40eccd:	1b f6                	sbb    %esi,%esi
40eccf:	f7 de                	neg    %esi
40ecd1:	f7 de                	neg    %esi
40ecd3:	ff 15 58 11 40 00    	call   *0x401158
40ecd9:	66 85 f6             	test   %si,%si
40ecdc:	74 26                	je     0x40ed04
40ecde:	8b 17                	mov    (%edi),%edx
40ece0:	68 b9 14 00 00       	push   $0x14b9
40ece5:	57                   	push   %edi
40ece6:	ff 92 5c 01 00 00    	call   *0x15c(%edx)
40ecec:	db e2                	fnclex
40ecee:	85 c0                	test   %eax,%eax
40ecf0:	7d 12                	jge    0x40ed04
40ecf2:	68 5c 01 00 00       	push   $0x15c
40ecf7:	68 9c d7 40 00       	push   $0x40d79c
40ecfc:	57                   	push   %edi
40ecfd:	50                   	push   %eax
40ecfe:	ff 15 38 10 40 00    	call   *0x401038
40ed04:	a1 20 07 41 00       	mov    0x410720,%eax
40ed09:	85 c0                	test   %eax,%eax
40ed0b:	75 10                	jne    0x40ed1d
40ed0d:	68 20 07 41 00       	push   $0x410720
40ed12:	68 94 d9 40 00       	push   $0x40d994
40ed17:	ff 15 e8 10 40 00    	call   *0x4010e8
40ed1d:	8b 35 20 07 41 00    	mov    0x410720,%esi
40ed23:	8b 06                	mov    (%esi),%eax
40ed25:	8d 8d 54 ff ff ff    	lea    -0xac(%ebp),%ecx
40ed2b:	51                   	push   %ecx
40ed2c:	56                   	push   %esi
40ed2d:	ff 50 14             	call   *0x14(%eax)
40ed30:	db e2                	fnclex
40ed32:	85 c0                	test   %eax,%eax
40ed34:	7d 0f                	jge    0x40ed45
40ed36:	6a 14                	push   $0x14
40ed38:	68 84 d9 40 00       	push   $0x40d984
40ed3d:	56                   	push   %esi
40ed3e:	50                   	push   %eax
40ed3f:	ff 15 38 10 40 00    	call   *0x401038
40ed45:	8b 85 54 ff ff ff    	mov    -0xac(%ebp),%eax
40ed4b:	8b 10                	mov    (%eax),%edx
40ed4d:	8d 8d 5c ff ff ff    	lea    -0xa4(%ebp),%ecx
40ed53:	51                   	push   %ecx
40ed54:	50                   	push   %eax
40ed55:	8b f0                	mov    %eax,%esi
40ed57:	ff 52 60             	call   *0x60(%edx)
40ed5a:	db e2                	fnclex
40ed5c:	85 c0                	test   %eax,%eax
40ed5e:	7d 0f                	jge    0x40ed6f
40ed60:	6a 60                	push   $0x60
40ed62:	68 b4 d9 40 00       	push   $0x40d9b4
40ed67:	56                   	push   %esi
40ed68:	50                   	push   %eax
40ed69:	ff 15 38 10 40 00    	call   *0x401038
40ed6f:	8b 95 5c ff ff ff    	mov    -0xa4(%ebp),%edx
40ed75:	8b 35 48 11 40 00    	mov    0x401148,%esi
40ed7b:	8d 4d a4             	lea    -0x5c(%ebp),%ecx
40ed7e:	c7 85 5c ff ff ff 00 	movl   $0x0,-0xa4(%ebp)
40ed85:	00 00 00
40ed88:	ff d6                	call   *%esi
40ed8a:	8d 8d 54 ff ff ff    	lea    -0xac(%ebp),%ecx
40ed90:	ff 15 5c 11 40 00    	call   *0x40115c
40ed96:	6a 00                	push   $0x0
40ed98:	6a 00                	push   $0x0
40ed9a:	ff 15 00 10 40 00    	call   *0x401000
40eda0:	ff 15 6c 10 40 00    	call   *0x40106c
40eda6:	dc 1d 68 11 40 00    	fcompl 0x401168
40edac:	df e0                	fnstsw %ax
40edae:	f6 c4 40             	test   $0x40,%ah
40edb1:	75 0b                	jne    0x40edbe
40edb3:	68 34 dc 40 00       	push   $0x40dc34
40edb8:	ff 15 d0 10 40 00    	call   *0x4010d0
40edbe:	8d 95 40 ff ff ff    	lea    -0xc0(%ebp),%edx
40edc4:	bf 04 00 02 80       	mov    $0x80020004,%edi
40edc9:	bb 0a 00 00 00       	mov    $0xa,%ebx
40edce:	52                   	push   %edx
40edcf:	89 bd 48 ff ff ff    	mov    %edi,-0xb8(%ebp)
40edd5:	89 9d 40 ff ff ff    	mov    %ebx,-0xc0(%ebp)
40eddb:	ff 15 e0 10 40 00    	call   *0x4010e0
40ede1:	8b d0                	mov    %eax,%edx
40ede3:	8d 8d 5c ff ff ff    	lea    -0xa4(%ebp),%ecx
40ede9:	ff d6                	call   *%esi
40edeb:	50                   	push   %eax
40edec:	68 54 dc 40 00       	push   $0x40dc54
40edf1:	ff 15 84 10 40 00    	call   *0x401084
40edf7:	8b f0                	mov    %eax,%esi
40edf9:	f7 de                	neg    %esi
40edfb:	1b f6                	sbb    %esi,%esi
40edfd:	46                   	inc    %esi
40edfe:	8d 8d 5c ff ff ff    	lea    -0xa4(%ebp),%ecx
40ee04:	f7 de                	neg    %esi
40ee06:	ff 15 58 11 40 00    	call   *0x401158
40ee0c:	8d 8d 40 ff ff ff    	lea    -0xc0(%ebp),%ecx
40ee12:	ff 15 14 10 40 00    	call   *0x401014
40ee18:	66 85 f6             	test   %si,%si
40ee1b:	0f 84 95 00 00 00    	je     0x40eeb6
40ee21:	8d 95 fc fe ff ff    	lea    -0x104(%ebp),%edx
40ee27:	8d 8d 40 ff ff ff    	lea    -0xc0(%ebp),%ecx
40ee2d:	89 bd 18 ff ff ff    	mov    %edi,-0xe8(%ebp)
40ee33:	89 9d 10 ff ff ff    	mov    %ebx,-0xf0(%ebp)
40ee39:	89 bd 28 ff ff ff    	mov    %edi,-0xd8(%ebp)
40ee3f:	89 9d 20 ff ff ff    	mov    %ebx,-0xe0(%ebp)
40ee45:	89 bd 38 ff ff ff    	mov    %edi,-0xc8(%ebp)
40ee4b:	89 9d 30 ff ff ff    	mov    %ebx,-0xd0(%ebp)
40ee51:	c7 85 04 ff ff ff 9c 	movl   $0x40dc9c,-0xfc(%ebp)
40ee58:	dc 40 00
40ee5b:	c7 85 fc fe ff ff 08 	movl   $0x8,-0x104(%ebp)
40ee62:	00 00 00
40ee65:	ff 15 2c 11 40 00    	call   *0x40112c
40ee6b:	8d 85 10 ff ff ff    	lea    -0xf0(%ebp),%eax
40ee71:	50                   	push   %eax
40ee72:	8d 8d 20 ff ff ff    	lea    -0xe0(%ebp),%ecx
40ee78:	51                   	push   %ecx
40ee79:	8d 95 30 ff ff ff    	lea    -0xd0(%ebp),%edx
40ee7f:	52                   	push   %edx
40ee80:	6a 00                	push   $0x0
40ee82:	8d 85 40 ff ff ff    	lea    -0xc0(%ebp),%eax
40ee88:	50                   	push   %eax
40ee89:	ff 15 5c 10 40 00    	call   *0x40105c
40ee8f:	8d 8d 10 ff ff ff    	lea    -0xf0(%ebp),%ecx