407c43:	db 45 fc             	fildl  -0x4(%ebp)
407c46:	de f9                	fdivrp %st,%st(1)
407c48:	dc 15 30 a3 40 00    	fcoml  0x40a330
407c4e:	df e0                	fnstsw %ax
407c50:	9e                   	sahf
407c51:	76 17                	jbe    0x407c6a
407c53:	dc 15 98 a3 40 00    	fcoml  0x40a398
407c59:	df e0                	fnstsw %ax
407c5b:	9e                   	sahf
407c5c:	73 0c                	jae    0x407c6a
407c5e:	dd 5f 18             	fstpl  0x18(%edi)
407c61:	8b cf                	mov    %edi,%ecx
407c63:	e8 96 02 00 00       	call   0x407efe
407c68:	eb 02                	jmp    0x407c6c
407c6a:	dd d8                	fstp   %st(0)
407c6c:	5f                   	pop    %edi
407c6d:	c9                   	leave
407c6e:	c3                   	ret
407c6f:	55                   	push   %ebp
407c70:	8b ec                	mov    %esp,%ebp
407c72:	81 ec b0 00 00 00    	sub    $0xb0,%esp
407c78:	8b 45 08             	mov    0x8(%ebp),%eax
407c7b:	53                   	push   %ebx
407c7c:	56                   	push   %esi
407c7d:	8b f1                	mov    %ecx,%esi
407c7f:	57                   	push   %edi
407c80:	89 46 28             	mov    %eax,0x28(%esi)
407c83:	e8 a1 f0 ff ff       	call   0x406d29
407c88:	33 db                	xor    %ebx,%ebx
407c8a:	8d 45 ec             	lea    -0x14(%ebp),%eax
407c8d:	53                   	push   %ebx
407c8e:	50                   	push   %eax
407c8f:	53                   	push   %ebx
407c90:	6a 30                	push   $0x30
407c92:	ff 15 2c a2 40 00    	call   *0x40a22c
407c98:	39 1e                	cmp    %ebx,(%esi)
407c9a:	88 5d ff             	mov    %bl,-0x1(%ebp)
407c9d:	7f 44                	jg     0x407ce3
407c9f:	39 5e 04             	cmp    %ebx,0x4(%esi)
407ca2:	7f 3f                	jg     0x407ce3
407ca4:	8b 45 f4             	mov    -0xc(%ebp),%eax
407ca7:	39 46 08             	cmp    %eax,0x8(%esi)
407caa:	7c 37                	jl     0x407ce3
407cac:	8b 4d f8             	mov    -0x8(%ebp),%ecx
407caf:	39 4e 0c             	cmp    %ecx,0xc(%esi)
407cb2:	7c 2f                	jl     0x407ce3
407cb4:	2b 45 ec             	sub    -0x14(%ebp),%eax
407cb7:	bf ee 02 00 00       	mov    $0x2ee,%edi
407cbc:	89 7e 08             	mov    %edi,0x8(%esi)
407cbf:	c6 45 ff 01          	movb   $0x1,-0x1(%ebp)
407cc3:	2b c7                	sub    %edi,%eax
407cc5:	99                   	cltd
407cc6:	2b c2                	sub    %edx,%eax
407cc8:	d1 f8                	sar    $1,%eax
407cca:	89 06                	mov    %eax,(%esi)
407ccc:	8b c1                	mov    %ecx,%eax
407cce:	2b 45 f0             	sub    -0x10(%ebp),%eax
407cd1:	b9 26 02 00 00       	mov    $0x226,%ecx
407cd6:	89 4e 0c             	mov    %ecx,0xc(%esi)
407cd9:	2b c1                	sub    %ecx,%eax
407cdb:	99                   	cltd
407cdc:	2b c2                	sub    %edx,%eax
407cde:	d1 f8                	sar    $1,%eax
407ce0:	89 46 04             	mov    %eax,0x4(%esi)
407ce3:	6a 0f                	push   $0xf
407ce5:	89 5d b4             	mov    %ebx,-0x4c(%ebp)
407ce8:	c7 45 a8 30 00 00 00 	movl   $0x30,-0x58(%ebp)
407cef:	89 5d b8             	mov    %ebx,-0x48(%ebp)
407cf2:	ff 15 08 a2 40 00    	call   *0x40a208
407cf8:	68 85 7f 00 00       	push   $0x7f85
407cfd:	53                   	push   %ebx
407cfe:	89 45 c8             	mov    %eax,-0x38(%ebp)
407d01:	ff 15 0c a2 40 00    	call   *0x40a20c
407d07:	68 90 01 00 00       	push   $0x190
407d0c:	89 45 c4             	mov    %eax,-0x3c(%ebp)
407d0f:	ff 76 28             	push   0x28(%esi)
407d12:	ff 15 9c a2 40 00    	call   *0x40a29c
407d18:	89 45 c0             	mov    %eax,-0x40(%ebp)
407d1b:	89 45 d4             	mov    %eax,-0x2c(%ebp)
407d1e:	8b 45 08             	mov    0x8(%ebp),%eax
407d21:	bf 70 a3 40 00       	mov    $0x40a370,%edi
407d26:	89 45 bc             	mov    %eax,-0x44(%ebp)
407d29:	8d 45 a8             	lea    -0x58(%ebp),%eax
407d2c:	50                   	push   %eax
407d2d:	c7 45 b0 00 10 40 00 	movl   $0x401000,-0x50(%ebp)
407d34:	89 7d d0             	mov    %edi,-0x30(%ebp)
407d37:	c7 45 cc 0a 00 00 00 	movl   $0xa,-0x34(%ebp)
407d3e:	c7 45 ac 28 00 00 00 	movl   $0x28,-0x54(%ebp)
407d45:	ff 15 10 a2 40 00    	call   *0x40a210
407d4b:	66 85 c0             	test   %ax,%ax
407d4e:	74 35                	je     0x407d85
407d50:	8b 46 04             	mov    0x4(%esi),%eax
407d53:	8b 56 0c             	mov    0xc(%esi),%edx
407d56:	8b 0e                	mov    (%esi),%ecx
407d58:	53                   	push   %ebx
407d59:	ff 76 28             	push   0x28(%esi)
407d5c:	2b d0                	sub    %eax,%edx
407d5e:	53                   	push   %ebx
407d5f:	53                   	push   %ebx
407d60:	52                   	push   %edx
407d61:	8b 56 08             	mov    0x8(%esi),%edx
407d64:	2b d1                	sub    %ecx,%edx
407d66:	52                   	push   %edx
407d67:	50                   	push   %eax
407d68:	51                   	push   %ecx
407d69:	68 00 00 cf 10       	push   $0x10cf0000
407d6e:	57                   	push   %edi
407d6f:	57                   	push   %edi
407d70:	68 00 03 00 00       	push   $0x300
407d75:	ff 15 98 a2 40 00    	call   *0x40a298
407d7b:	3b c3                	cmp    %ebx,%eax
407d7d:	89 86 f0 01 00 00    	mov    %eax,0x1f0(%esi)
407d83:	75 07                	jne    0x407d8c
407d85:	33 c0                	xor    %eax,%eax
407d87:	e9 6b 01 00 00       	jmp    0x407ef7
407d8c:	53                   	push   %ebx
407d8d:	ff 76 28             	push   0x28(%esi)
407d90:	53                   	push   %ebx
407d91:	50                   	push   %eax
407d92:	53                   	push   %ebx
407d93:	53                   	push   %ebx
407d94:	53                   	push   %ebx
407d95:	53                   	push   %ebx
407d96:	68 10 00 80 50       	push   $0x50800010
407d9b:	53                   	push   %ebx
407d9c:	68 cc c2 40 00       	push   $0x40c2cc
407da1:	53                   	push   %ebx
407da2:	ff 15 98 a2 40 00    	call   *0x40a298
407da8:	83 4d e8 ff          	orl    $0xffffffff,-0x18(%ebp)
407dac:	8d 4d d8             	lea    -0x28(%ebp),%ecx
407daf:	51                   	push   %ecx
407db0:	6a 05                	push   $0x5
407db2:	68 04 04 00 00       	push   $0x404
407db7:	50                   	push   %eax
407db8:	89 86 f4 01 00 00    	mov    %eax,0x1f4(%esi)
407dbe:	c7 45 d8 4b 00 00 00 	movl   $0x4b,-0x28(%ebp)
407dc5:	c7 45 dc aa 00 00 00 	movl   $0xaa,-0x24(%ebp)
407dcc:	c7 45 e0 40 01 00 00 	movl   $0x140,-0x20(%ebp)
407dd3:	c7 45 e4 a4 01 00 00 	movl   $0x1a4,-0x1c(%ebp)
407dda:	ff 15 dc a2 40 00    	call   *0x40a2dc
407de0:	68 f0 d4 40 00       	push   $0x40d4f0
407de5:	6a 04                	push   $0x4
407de7:	68 01 04 00 00       	push   $0x401
407dec:	ff b6 f4 01 00 00    	push   0x1f4(%esi)
407df2:	ff 15 dc a2 40 00    	call   *0x40a2dc
407df8:	8b ce                	mov    %esi,%ecx
407dfa:	e8 ff 00 00 00       	call   0x407efe
407dff:	8b 86 f0 01 00 00    	mov    0x1f0(%esi),%eax
407e05:	68 90 01 00 00       	push   $0x190
407e0a:	ff 76 28             	push   0x28(%esi)
407e0d:	c7 85 50 ff ff ff 58 	movl   $0x58,-0xb0(%ebp)
407e14:	00 00 00
407e17:	89 85 54 ff ff ff    	mov    %eax,-0xac(%ebp)
407e1d:	c7 85 58 ff ff ff 16 	movl   $0x16,-0xa8(%ebp)
407e24:	00 00 00
407e27:	c7 85 5c ff ff ff 07 	movl   $0x7,-0xa4(%ebp)
407e2e:	00 00 00
407e31:	c7 85 60 ff ff ff 0a 	movl   $0x40a,-0xa0(%ebp)
407e38:	04 00 00
407e3b:	ff 15 9c a2 40 00    	call   *0x40a29c
407e41:	89 85 64 ff ff ff    	mov    %eax,-0x9c(%ebp)
407e47:	8d 85 68 ff ff ff    	lea    -0x98(%ebp),%eax
407e4d:	57                   	push   %edi
407e4e:	50                   	push   %eax
407e4f:	e8 f4 11 00 00       	call   0x409048
407e54:	59                   	pop    %ecx
407e55:	8d 85 50 ff ff ff    	lea    -0xb0(%ebp),%eax
407e5b:	59                   	pop    %ecx
407e5c:	50                   	push   %eax
407e5d:	53                   	push   %ebx
407e5e:	ff 15 d4 a1 40 00    	call   *0x40a1d4
407e64:	85 c0                	test   %eax,%eax
407e66:	75 12                	jne    0x407e7a
407e68:	68 38 d0 40 00       	push   $0x40d038
407e6d:	ff b6 f0 01 00 00    	push   0x1f0(%esi)
407e73:	e8 8d 07 00 00       	call   0x408605
407e78:	59                   	pop    %ecx
407e79:	59                   	pop    %ecx
407e7a:	53                   	push   %ebx
407e7b:	8b ce                	mov    %esi,%ecx
407e7d:	e8 43 f9 ff ff       	call   0x4077c5
407e82:	53                   	push   %ebx
407e83:	8b ce                	mov    %esi,%ecx
407e85:	e8 f4 f8 ff ff       	call   0x40777e
407e8a:	38 5d ff             	cmp    %bl,-0x1(%ebp)
407e8d:	74 0e                	je     0x407e9d
407e8f:	6a 03                	push   $0x3
407e91:	ff b6 f0 01 00 00    	push   0x1f0(%esi)
407e97:	ff 15 e8 a1 40 00    	call   *0x40a1e8
407e9d:	bf 80 a3 40 00       	mov    $0x40a380,%edi
407ea2:	57                   	push   %edi
407ea3:	e8 a6 11 00 00       	call   0x40904e
407ea8:	89 45 08             	mov    %eax,0x8(%ebp)
407eab:	8d 46 2d             	lea    0x2d(%esi),%eax
407eae:	57                   	push   %edi
407eaf:	50                   	push   %eax
407eb0:	e8 93 11 00 00       	call   0x409048
407eb5:	8b 45 08             	mov    0x8(%ebp),%eax
407eb8:	83 c4 0c             	add    $0xc,%esp
407ebb:	03 c6                	add    %esi,%eax
407ebd:	bf 2d 01 00 00       	mov    $0x12d,%edi
407ec2:	53                   	push   %ebx
407ec3:	57                   	push   %edi
407ec4:	c6 40 2d 20          	movb   $0x20,0x2d(%eax)
407ec8:	ff b6 f0 01 00 00    	push   0x1f0(%esi)
407ece:	83 c0 2e             	add    $0x2e,%eax
407ed1:	8b ce                	mov    %esi,%ecx
407ed3:	89 86 b0 00 00 00    	mov    %eax,0xb0(%esi)
407ed9:	e8 fe 9d ff ff       	call   0x401cdc
407ede:	53                   	push   %ebx
407edf:	68 60 ea 00 00       	push   $0xea60
407ee4:	57                   	push   %edi
407ee5:	ff b6 f0 01 00 00    	push   0x1f0(%esi)
407eeb:	ff 15 28 a2 40 00    	call   *0x40a228
407ef1:	8b 86 f0 01 00 00    	mov    0x1f0(%esi),%eax
407ef7:	5f                   	pop    %edi
407ef8:	5e                   	pop    %esi
407ef9:	5b                   	pop    %ebx
407efa:	c9                   	leave
407efb:	c2 04 00             	ret    $0x4
407efe:	55                   	push   %ebp
407eff:	8b ec                	mov    %esp,%ebp
407f01:	83 ec 28             	sub    $0x28,%esp
407f04:	53                   	push   %ebx
407f05:	56                   	push   %esi
407f06:	8d 45 d8             	lea    -0x28(%ebp),%eax
407f09:	57                   	push   %edi
407f0a:	8b 3d 68 a2 40 00    	mov    0x40a268,%edi
407f10:	8b f1                	mov    %ecx,%esi
407f12:	50                   	push   %eax
407f13:	ff b6 f4 01 00 00    	push   0x1f4(%esi)
407f19:	ff d7                	call   *%edi
407f1b:	8d 45 e8             	lea    -0x18(%ebp),%eax
407f1e:	50                   	push   %eax
407f1f:	ff b6 f0 01 00 00    	push   0x1f0(%esi)
407f25:	ff d7                	call   *%edi
407f27:	8b 45 f4             	mov    -0xc(%ebp),%eax
407f2a:	33 db                	xor    %ebx,%ebx
407f2c:	2b 45 e4             	sub    -0x1c(%ebp),%eax
407f2f:	39 5e 10             	cmp    %ebx,0x10(%esi)
407f32:	89 45 fc             	mov    %eax,-0x4(%ebp)
407f35:	75 17                	jne    0x407f4e
407f37:	6a 04                	push   $0x4
407f39:	50                   	push   %eax
407f3a:	ff 75 f0             	push   -0x10(%ebp)
407f3d:	53                   	push   %ebx
407f3e:	53                   	push   %ebx
407f3f:	53                   	push   %ebx
407f40:	ff b6 ec 01 00 00    	push   0x1ec(%esi)
407f46:	ff 15 84 a2 40 00    	call   *0x40a284
407f4c:	eb 57                	jmp    0x407fa5
407f4e:	db 45 fc             	fildl  -0x4(%ebp)
407f51:	6a 04                	push   $0x4
407f53:	dd 5d f8             	fstpl  -0x8(%ebp)
407f56:	dd 45 f8             	fldl   -0x8(%ebp)
407f59:	dc 4e 18             	fmull  0x18(%esi)
407f5c:	e8 ef 11 00 00       	call   0x409150
407f61:	50                   	push   %eax
407f62:	8b 3d 84 a2 40 00    	mov    0x40a284,%edi
407f68:	ff 75 f0             	push   -0x10(%ebp)
407f6b:	53                   	push   %ebx
407f6c:	53                   	push   %ebx
407f6d:	53                   	push   %ebx
407f6e:	ff b6 ec 01 00 00    	push   0x1ec(%esi)
407f74:	ff d7                	call   *%edi
407f76:	d9 e8                	fld1
407f78:	6a 04                	push   $0x4
407f7a:	dc 66 18             	fsubl  0x18(%esi)
407f7d:	dc 4d f8             	fmull  -0x8(%ebp)
407f80:	e8 cb 11 00 00       	call   0x409150
407f85:	dd 45 f8             	fldl   -0x8(%ebp)
407f88:	dc 4e 18             	fmull  0x18(%esi)
407f8b:	83 e8 03             	sub    $0x3,%eax
407f8e:	50                   	push   %eax
407f8f:	ff 75 f0             	push   -0x10(%ebp)
407f92:	e8 b9 11 00 00       	call   0x409150
407f97:	83 c0 03             	add    $0x3,%eax
407f9a:	50                   	push   %eax
407f9b:	53                   	push   %ebx
407f9c:	53                   	push   %ebx
407f9d:	ff b6 c4 00 00 00    	push   0xc4(%esi)
407fa3:	ff d7                	call   *%edi
407fa5:	38 5e 2c             	cmp    %bl,0x2c(%esi)
407fa8:	75 12                	jne    0x407fbc
407faa:	6a 01                	push   $0x1
407fac:	53                   	push   %ebx
407fad:	53                   	push   %ebx
407fae:	53                   	push   %ebx
407faf:	53                   	push   %ebx
407fb0:	ff b6 f4 01 00 00    	push   0x1f4(%esi)
407fb6:	ff 15 64 a2 40 00    	call   *0x40a264
407fbc:	5f                   	pop    %edi
407fbd:	5e                   	pop    %esi
407fbe:	5b                   	pop    %ebx
407fbf:	c9                   	leave
407fc0:	c3                   	ret
407fc1:	b8 0e 95 40 00       	mov    $0x40950e,%eax
407fc6:	e8 65 0f 00 00       	call   0x408f30
407fcb:	83 ec 24             	sub    $0x24,%esp
407fce:	53                   	push   %ebx
407fcf:	56                   	push   %esi
407fd0:	57                   	push   %edi
407fd1:	8b 7d 08             	mov    0x8(%ebp),%edi
407fd4:	8b f1                	mov    %ecx,%esi
407fd6:	6a 28                	push   $0x28
407fd8:	89 be f0 01 00 00    	mov    %edi,0x1f0(%esi)
407fde:	e8 6b 0f 00 00       	call   0x408f4e
407fe3:	59                   	pop    %ecx
407fe4:	89 45 f0             	mov    %eax,-0x10(%ebp)
407fe7:	33 db                	xor    %ebx,%ebx
407fe9:	3b c3                	cmp    %ebx,%eax
407feb:	89 5d fc             	mov    %ebx,-0x4(%ebp)
407fee:	74 0e                	je     0x407ffe
407ff0:	8d 4d 08             	lea    0x8(%ebp),%ecx
407ff3:	57                   	push   %edi
407ff4:	51                   	push   %ecx
407ff5:	8b c8                	mov    %eax,%ecx
407ff7:	e8 c1 df ff ff       	call   0x405fbd
407ffc:	eb 02                	jmp    0x408000
407ffe:	33 c0                	xor    %eax,%eax
408000:	83 4d fc ff          	orl    $0xffffffff,-0x4(%ebp)
408004:	83 7d 08 01          	cmpl   $0x1,0x8(%ebp)
408008:	89 86 e8 01 00 00    	mov    %eax,0x1e8(%esi)
40800e:	74 1a                	je     0x40802a
408010:	68 78 d0 40 00       	push   $0x40d078
408015:	57                   	push   %edi
408016:	e8 ea 05 00 00       	call   0x408605
40801b:	59                   	pop    %ecx
40801c:	59                   	pop    %ecx
40801d:	53                   	push   %ebx
40801e:	53                   	push   %ebx
40801f:	6a 10                	push   $0x10
408021:	57                   	push   %edi
408022:	ff 15 dc a2 40 00    	call   *0x40a2dc
408028:	eb 2a                	jmp    0x408054
40802a:	53                   	push   %ebx
40802b:	ff 76 28             	push   0x28(%esi)
40802e:	53                   	push   %ebx
40802f:	57                   	push   %edi
408030:	53                   	push   %ebx
408031:	53                   	push   %ebx
408032:	53                   	push   %ebx
408033:	53                   	push   %ebx
408034:	68 0d 00 00 50       	push   $0x5000000d
408039:	53                   	push   %ebx
40803a:	68 20 c3 40 00       	push   $0x40c320
40803f:	68 00 02 00 00       	push   $0x200
408044:	ff 15 98 a2 40 00    	call   *0x40a298
40804a:	3b c3                	cmp    %ebx,%eax
40804c:	89 86 ec 01 00 00    	mov    %eax,0x1ec(%esi)