58e804:	8b 44 24 34          	mov    0x34(%esp),%eax
58e808:	0f b7 18             	movzwl (%eax),%ebx
58e80b:	2b 9e 04 01 00 00    	sub    0x104(%esi),%ebx
58e811:	85 db                	test   %ebx,%ebx
58e813:	7e 17                	jle    0x58e82c
58e815:	89 9c 24 88 00 00 00 	mov    %ebx,0x88(%esp)
58e81c:	db 84 24 88 00 00 00 	fildl  0x88(%esp)
58e823:	dc 44 fc 68          	faddl  0x68(%esp,%edi,8)
58e827:	dd 5c fc 68          	fstpl  0x68(%esp,%edi,8)
58e82b:	9b                   	fwait
58e82c:	ff 44 bc 58          	incl   0x58(%esp,%edi,4)
58e830:	ff 44 24 04          	incl   0x4(%esp)
58e834:	83 44 24 34 02       	addl   $0x2,0x34(%esp)
58e839:	83 7c 24 04 08       	cmpl   $0x8,0x4(%esp)
58e83e:	75 a6                	jne    0x58e7e6
58e840:	ff 04 24             	incl   (%esp)
58e843:	83 44 24 30 10       	addl   $0x10,0x30(%esp)
58e848:	83 3c 24 08          	cmpl   $0x8,(%esp)
58e84c:	75 8a                	jne    0x58e7d8
58e84e:	c7 44 24 08 76 3b 77 	movl   $0x30773b76,0x8(%esp)
58e855:	30
58e856:	c7 44 24 0c d1 42 ee 	movl   $0x7fee42d1,0xc(%esp)
58e85d:	7f
58e85e:	33 c0                	xor    %eax,%eax
58e860:	89 44 24 10          	mov    %eax,0x10(%esp)
58e864:	89 44 24 14          	mov    %eax,0x14(%esp)
58e868:	8b 86 00 01 00 00    	mov    0x100(%esi),%eax
58e86e:	48                   	dec    %eax
58e86f:	85 c0                	test   %eax,%eax
58e871:	7c 50                	jl     0x58e8c3
58e873:	40                   	inc    %eax
58e874:	89 44 24 18          	mov    %eax,0x18(%esp)
58e878:	8d 54 24 68          	lea    0x68(%esp),%edx
58e87c:	8d 4c 24 58          	lea    0x58(%esp),%ecx
58e880:	db 01                	fildl  (%ecx)
58e882:	dc 3a                	fdivrl (%edx)
58e884:	dd 1a                	fstpl  (%edx)
58e886:	9b dd 44 24 08       	fldl   0x8(%esp)
58e88b:	dc 1a                	fcompl (%edx)
58e88d:	df e0                	fnstsw %ax
58e88f:	9e                   	sahf
58e890:	76 0d                	jbe    0x58e89f
58e892:	8b 02                	mov    (%edx),%eax
58e894:	89 44 24 08          	mov    %eax,0x8(%esp)
58e898:	8b 42 04             	mov    0x4(%edx),%eax
58e89b:	89 44 24 0c          	mov    %eax,0xc(%esp)
58e89f:	dd 44 24 10          	fldl   0x10(%esp)
58e8a3:	dc 1a                	fcompl (%edx)
58e8a5:	df e0                	fnstsw %ax
58e8a7:	9e                   	sahf
58e8a8:	73 0d                	jae    0x58e8b7
58e8aa:	8b 02                	mov    (%edx),%eax
58e8ac:	89 44 24 10          	mov    %eax,0x10(%esp)
58e8b0:	8b 42 04             	mov    0x4(%edx),%eax
58e8b3:	89 44 24 14          	mov    %eax,0x14(%esp)
58e8b7:	83 c1 04             	add    $0x4,%ecx
58e8ba:	83 c2 08             	add    $0x8,%edx
58e8bd:	ff 4c 24 18          	decl   0x18(%esp)
58e8c1:	75 bd                	jne    0x58e880
58e8c3:	dd 44 24 08          	fldl   0x8(%esp)
58e8c7:	d8 1d 68 ea 58 00    	fcomps 0x58ea68
58e8cd:	df e0                	fnstsw %ax
58e8cf:	9e                   	sahf
58e8d0:	76 31                	jbe    0x58e903
58e8d2:	8b 86 00 01 00 00    	mov    0x100(%esi),%eax
58e8d8:	48                   	dec    %eax
58e8d9:	85 c0                	test   %eax,%eax
58e8db:	7c 76                	jl     0x58e953
58e8dd:	40                   	inc    %eax
58e8de:	89 44 24 18          	mov    %eax,0x18(%esp)
58e8e2:	8d 4c 24 68          	lea    0x68(%esp),%ecx
58e8e6:	8d 96 f4 01 00 00    	lea    0x1f4(%esi),%edx
58e8ec:	dd 44 24 10          	fldl   0x10(%esp)
58e8f0:	dc 31                	fdivl  (%ecx)
58e8f2:	d9 1a                	fstps  (%edx)
58e8f4:	9b                   	fwait
58e8f5:	83 c2 04             	add    $0x4,%edx
58e8f8:	83 c1 08             	add    $0x8,%ecx
58e8fb:	ff 4c 24 18          	decl   0x18(%esp)
58e8ff:	75 eb                	jne    0x58e8ec
58e901:	eb 50                	jmp    0x58e953
58e903:	d9 86 ec 01 00 00    	flds   0x1ec(%esi)
58e909:	d8 1d 68 ea 58 00    	fcomps 0x58ea68
58e90f:	df e0                	fnstsw %ax
58e911:	9e                   	sahf
58e912:	74 3f                	je     0x58e953
58e914:	d9 86 f0 01 00 00    	flds   0x1f0(%esi)
58e91a:	d8 1d 68 ea 58 00    	fcomps 0x58ea68
58e920:	df e0                	fnstsw %ax
58e922:	9e                   	sahf
58e923:	74 2e                	je     0x58e953
58e925:	8b 86 ec 01 00 00    	mov    0x1ec(%esi),%eax
58e92b:	89 86 f4 01 00 00    	mov    %eax,0x1f4(%esi)
58e931:	8b 86 f0 01 00 00    	mov    0x1f0(%esi),%eax
58e937:	89 86 fc 01 00 00    	mov    %eax,0x1fc(%esi)
58e93d:	c7 86 00 02 00 00 00 	movl   $0x3f800000,0x200(%esi)
58e944:	00 80 3f
58e947:	8b 86 00 02 00 00    	mov    0x200(%esi),%eax
58e94d:	89 86 f8 01 00 00    	mov    %eax,0x1f8(%esi)
58e953:	83 be 24 01 00 00 00 	cmpl   $0x0,0x124(%esi)
58e95a:	75 26                	jne    0x58e982
58e95c:	d9 86 f4 01 00 00    	flds   0x1f4(%esi)
58e962:	d8 8e cc 01 00 00    	fmuls  0x1cc(%esi)
58e968:	d9 9e f4 01 00 00    	fstps  0x1f4(%esi)
58e96e:	9b d9 86 fc 01 00 00 	flds   0x1fc(%esi)
58e975:	d8 8e d0 01 00 00    	fmuls  0x1d0(%esi)
58e97b:	d9 9e fc 01 00 00    	fstps  0x1fc(%esi)
58e981:	9b                   	fwait
58e982:	8b 86 f8 00 00 00    	mov    0xf8(%esi),%eax
58e988:	48                   	dec    %eax
58e989:	85 c0                	test   %eax,%eax
58e98b:	0f 8c c5 00 00 00    	jl     0x58ea56
58e991:	40                   	inc    %eax
58e992:	89 44 24 18          	mov    %eax,0x18(%esp)
58e996:	c7 04 24 00 00 00 00 	movl   $0x0,(%esp)
58e99d:	8b 86 fc 00 00 00    	mov    0xfc(%esi),%eax
58e9a3:	48                   	dec    %eax
58e9a4:	85 c0                	test   %eax,%eax
58e9a6:	0f 8c 9d 00 00 00    	jl     0x58ea49
58e9ac:	40                   	inc    %eax
58e9ad:	89 44 24 1c          	mov    %eax,0x1c(%esp)
58e9b1:	c7 44 24 04 00 00 00 	movl   $0x0,0x4(%esp)
58e9b8:	00
58e9b9:	8b 86 00 01 00 00    	mov    0x100(%esi),%eax
58e9bf:	48                   	dec    %eax
58e9c0:	85 c0                	test   %eax,%eax
58e9c2:	7c 77                	jl     0x58ea3b
58e9c4:	40                   	inc    %eax
58e9c5:	89 44 24 20          	mov    %eax,0x20(%esp)
58e9c9:	33 ff                	xor    %edi,%edi
58e9cb:	8d ae f4 01 00 00    	lea    0x1f4(%esi),%ebp
58e9d1:	8b 86 fc 00 00 00    	mov    0xfc(%esi),%eax
58e9d7:	f7 2c 24             	imull  (%esp)
58e9da:	03 44 24 04          	add    0x4(%esp),%eax
58e9de:	8b 16                	mov    (%esi),%edx
58e9e0:	8d 04 c2             	lea    (%edx,%eax,8),%eax
58e9e3:	0f b7 1c 78          	movzwl (%eax,%edi,2),%ebx
58e9e7:	85 db                	test   %ebx,%ebx
58e9e9:	74 46                	je     0x58ea31
58e9eb:	2b 9e 04 01 00 00    	sub    0x104(%esi),%ebx
58e9f1:	89 9c 24 88 00 00 00 	mov    %ebx,0x88(%esp)
58e9f8:	db 84 24 88 00 00 00 	fildl  0x88(%esp)
58e9ff:	d8 4d 00             	fmuls  0x0(%ebp)
58ea02:	e8 c5 42 e7 ff       	call   0x402ccc
58ea07:	8b d8                	mov    %eax,%ebx
58ea09:	85 db                	test   %ebx,%ebx
58ea0b:	7d 02                	jge    0x58ea0f
58ea0d:	33 db                	xor    %ebx,%ebx
58ea0f:	8b 86 08 01 00 00    	mov    0x108(%esi),%eax
58ea15:	3b d8                	cmp    %eax,%ebx
58ea17:	7e 02                	jle    0x58ea1b
58ea19:	8b d8                	mov    %eax,%ebx
58ea1b:	8b 86 fc 00 00 00    	mov    0xfc(%esi),%eax
58ea21:	f7 2c 24             	imull  (%esp)
58ea24:	03 44 24 04          	add    0x4(%esp),%eax
58ea28:	8b 16                	mov    (%esi),%edx
58ea2a:	8d 04 c2             	lea    (%edx,%eax,8),%eax
58ea2d:	66 89 1c 78          	mov    %bx,(%eax,%edi,2)
58ea31:	47                   	inc    %edi
58ea32:	83 c5 04             	add    $0x4,%ebp
58ea35:	ff 4c 24 20          	decl   0x20(%esp)
58ea39:	75 96                	jne    0x58e9d1
58ea3b:	ff 44 24 04          	incl   0x4(%esp)
58ea3f:	ff 4c 24 1c          	decl   0x1c(%esp)
58ea43:	0f 85 70 ff ff ff    	jne    0x58e9b9
58ea49:	ff 04 24             	incl   (%esp)
58ea4c:	ff 4c 24 18          	decl   0x18(%esp)
58ea50:	0f 85 47 ff ff ff    	jne    0x58e99d
58ea56:	81 c4 8c 00 00 00    	add    $0x8c,%esp
58ea5c:	5d                   	pop    %ebp
58ea5d:	5f                   	pop    %edi
58ea5e:	5e                   	pop    %esi
58ea5f:	5b                   	pop    %ebx
58ea60:	c3                   	ret
58ea61:	00 00                	add    %al,(%eax)
58ea63:	00 00                	add    %al,(%eax)
58ea65:	00 80 bf 00 00 00    	add    %al,0xbf(%eax)
58ea6b:	00 53 56             	add    %dl,0x56(%ebx)
58ea6e:	57                   	push   %edi
58ea6f:	55                   	push   %ebp
58ea70:	50                   	push   %eax
58ea71:	b8 05 00 00 00       	mov    $0x5,%eax
58ea76:	81 c4 04 f0 ff ff    	add    $0xfffff004,%esp
58ea7c:	50                   	push   %eax
58ea7d:	48                   	dec    %eax
58ea7e:	75 f6                	jne    0x58ea76
58ea80:	8b 84 24 00 50 00 00 	mov    0x5000(%esp),%eax
58ea87:	81 c4 70 ff ff ff    	add    $0xffffff70,%esp
58ea8d:	8b f8                	mov    %eax,%edi
58ea8f:	33 c0                	xor    %eax,%eax
58ea91:	89 44 24 04          	mov    %eax,0x4(%esp)
58ea95:	8d 44 24 64          	lea    0x64(%esp),%eax
58ea99:	89 44 24 40          	mov    %eax,0x40(%esp)
58ea9d:	c7 44 24 08 01 00 00 	movl   $0x1,0x8(%esp)
58eaa4:	00
58eaa5:	8b 44 24 08          	mov    0x8(%esp),%eax
58eaa9:	83 e0 01             	and    $0x1,%eax
58eaac:	c1 e0 05             	shl    $0x5,%eax
58eaaf:	8d 04 80             	lea    (%eax,%eax,4),%eax
58eab2:	8b 54 24 40          	mov    0x40(%esp),%edx
58eab6:	8d 1c c2             	lea    (%edx,%eax,8),%ebx
58eab9:	8d 84 24 84 50 00 00 	lea    0x5084(%esp),%eax
58eac0:	b9 10 00 00 00       	mov    $0x10,%ecx
58eac5:	33 d2                	xor    %edx,%edx
58eac7:	e8 e8 a6 ff ff       	call   0x5891b4
58eacc:	c7 44 24 10 ff ff ff 	movl   $0xffffffff,0x10(%esp)
58ead3:	ff
58ead4:	c7 44 24 0c ff ff ff 	movl   $0xffffffff,0xc(%esp)
58eadb:	ff
58eadc:	83 7c 24 10 00       	cmpl   $0x0,0x10(%esp)
58eae1:	0f 94 c0             	sete   %al
58eae4:	83 e0 7f             	and    $0x7f,%eax
58eae7:	83 7c 24 0c 00       	cmpl   $0x0,0xc(%esp)
58eaec:	0f 94 c2             	sete   %dl
58eaef:	83 e2 7f             	and    $0x7f,%edx
58eaf2:	03 c2                	add    %edx,%eax
58eaf4:	83 f8 02             	cmp    $0x2,%eax
58eaf7:	74 5a                	je     0x58eb53
58eaf9:	8b 4c 24 04          	mov    0x4(%esp),%ecx
58eafd:	03 4c 24 10          	add    0x10(%esp),%ecx
58eb01:	03 c9                	add    %ecx,%ecx
58eb03:	83 e1 0e             	and    $0xe,%ecx
58eb06:	8b 54 24 08          	mov    0x8(%esp),%edx
58eb0a:	03 54 24 0c          	add    0xc(%esp),%edx
58eb0e:	83 e2 01             	and    $0x1,%edx
58eb11:	03 ca                	add    %edx,%ecx
58eb13:	03 c9                	add    %ecx,%ecx
58eb15:	8b af 3c 01 00 00    	mov    0x13c(%edi),%ebp
58eb1b:	d3 ed                	shr    %cl,%ebp
58eb1d:	83 e5 03             	and    $0x3,%ebp
58eb20:	8b 97 fc 00 00 00    	mov    0xfc(%edi),%edx
58eb26:	0f af 54 24 10       	imul   0x10(%esp),%edx
58eb2b:	03 54 24 0c          	add    0xc(%esp),%edx
58eb2f:	c1 e2 02             	shl    $0x2,%edx
58eb32:	03 d5                	add    %ebp,%edx
58eb34:	89 13                	mov    %edx,(%ebx)
58eb36:	83 c3 04             	add    $0x4,%ebx
58eb39:	89 03                	mov    %eax,(%ebx)
58eb3b:	83 c3 04             	add    $0x4,%ebx
58eb3e:	89 2b                	mov    %ebp,(%ebx)
58eb40:	83 c3 04             	add    $0x4,%ebx
58eb43:	8b c8                	mov    %eax,%ecx
58eb45:	b8 01 00 00 00       	mov    $0x1,%eax
58eb4a:	d3 e0                	shl    %cl,%eax
58eb4c:	01 84 ac 84 50 00 00 	add    %eax,0x5084(%esp,%ebp,4)
58eb53:	ff 44 24 0c          	incl   0xc(%esp)
58eb57:	83 7c 24 0c 02       	cmpl   $0x2,0xc(%esp)
58eb5c:	0f 85 7a ff ff ff    	jne    0x58eadc
58eb62:	ff 44 24 10          	incl   0x10(%esp)
58eb66:	83 7c 24 10 02       	cmpl   $0x2,0x10(%esp)
58eb6b:	0f 85 63 ff ff ff    	jne    0x58ead4
58eb71:	8b 87 00 01 00 00    	mov    0x100(%edi),%eax
58eb77:	48                   	dec    %eax
58eb78:	85 c0                	test   %eax,%eax
58eb7a:	7c 66                	jl     0x58ebe2
58eb7c:	40                   	inc    %eax
58eb7d:	89 44 24 38          	mov    %eax,0x38(%esp)
58eb81:	c7 44 24 34 00 00 00 	movl   $0x0,0x34(%esp)
58eb88:	00
58eb89:	8d b4 24 84 50 00 00 	lea    0x5084(%esp),%esi
58eb90:	8b 4c 24 04          	mov    0x4(%esp),%ecx
58eb94:	03 c9                	add    %ecx,%ecx
58eb96:	83 e1 0e             	and    $0xe,%ecx
58eb99:	8b 44 24 08          	mov    0x8(%esp),%eax
58eb9d:	83 e0 01             	and    $0x1,%eax
58eba0:	03 c8                	add    %eax,%ecx
58eba2:	03 c9                	add    %ecx,%ecx
58eba4:	8b 87 3c 01 00 00    	mov    0x13c(%edi),%eax
58ebaa:	d3 e8                	shr    %cl,%eax
58ebac:	83 e0 03             	and    $0x3,%eax
58ebaf:	33 d2                	xor    %edx,%edx
58ebb1:	52                   	push   %edx
58ebb2:	50                   	push   %eax
58ebb3:	8b 44 24 3c          	mov    0x3c(%esp),%eax
58ebb7:	99                   	cltd
58ebb8:	3b 54 24 04          	cmp    0x4(%esp),%edx
58ebbc:	75 03                	jne    0x58ebc1
58ebbe:	3b 04 24             	cmp    (%esp),%eax
58ebc1:	5a                   	pop    %edx
58ebc2:	58                   	pop    %eax
58ebc3:	74 10                	je     0x58ebd5
58ebc5:	8b 44 24 34          	mov    0x34(%esp),%eax
58ebc9:	89 03                	mov    %eax,(%ebx)
58ebcb:	83 c3 04             	add    $0x4,%ebx
58ebce:	8b 06                	mov    (%esi),%eax
58ebd0:	89 03                	mov    %eax,(%ebx)
58ebd2:	83 c3 04             	add    $0x4,%ebx
58ebd5:	ff 44 24 34          	incl   0x34(%esp)
58ebd9:	83 c6 04             	add    $0x4,%esi
58ebdc:	ff 4c 24 38          	decl   0x38(%esp)
58ebe0:	75 ae                	jne    0x58eb90
58ebe2:	ff 44 24 08          	incl   0x8(%esp)
58ebe6:	83 7c 24 08 03       	cmpl   $0x3,0x8(%esp)
58ebeb:	0f 85 b4 fe ff ff    	jne    0x58eaa5
58ebf1:	ff 44 24 04          	incl   0x4(%esp)
58ebf5:	81 44 24 40 00 0a 00 	addl   $0xa00,0x40(%esp)
58ebfc:	00
58ebfd:	83 7c 24 04 08       	cmpl   $0x8,0x4(%esp)
58ec02:	0f 85 95 fe ff ff    	jne    0x58ea9d
58ec08:	8b 87 f8 00 00 00    	mov    0xf8(%edi),%eax
58ec0e:	48                   	dec    %eax
58ec0f:	48                   	dec    %eax
58ec10:	85 c0                	test   %eax,%eax
58ec12:	0f 8e e9 00 00 00    	jle    0x58ed01
58ec18:	89 44 24 38          	mov    %eax,0x38(%esp)
58ec1c:	c7 44 24 04 01 00 00 	movl   $0x1,0x4(%esp)
58ec23:	00
58ec24:	8b 87 fc 00 00 00    	mov    0xfc(%edi),%eax
58ec2a:	48                   	dec    %eax
58ec2b:	48                   	dec    %eax
58ec2c:	85 c0                	test   %eax,%eax
58ec2e:	0f 8e bf 00 00 00    	jle    0x58ecf3
58ec34:	89 44 24 3c          	mov    %eax,0x3c(%esp)
58ec38:	c7 44 24 08 01 00 00 	movl   $0x1,0x8(%esp)
58ec3f:	00
58ec40:	8b 87 fc 00 00 00    	mov    0xfc(%edi),%eax
58ec46:	f7 6c 24 04          	imull  0x4(%esp)
58ec4a:	03 44 24 08          	add    0x8(%esp),%eax
58ec4e:	8b 17                	mov    (%edi),%edx
58ec50:	8d 04 c2             	lea    (%edx,%eax,8),%eax
58ec53:	89 04 24             	mov    %eax,(%esp)
58ec56:	8b 44 24 08          	mov    0x8(%esp),%eax
58ec5a:	83 e0 01             	and    $0x1,%eax
58ec5d:	c1 e0 05             	shl    $0x5,%eax
58ec60:	8d 04 80             	lea    (%eax,%eax,4),%eax
58ec63:	8b 54 24 04          	mov    0x4(%esp),%edx
58ec67:	83 e2 07             	and    $0x7,%edx
58ec6a:	c1 e2 06             	shl    $0x6,%edx
58ec6d:	8d 14 92             	lea    (%edx,%edx,4),%edx
58ec70:	8d 54 d4 64          	lea    0x64(%esp,%edx,8),%edx
58ec74:	8d 1c c2             	lea    (%edx,%eax,8),%ebx
58ec77:	8d 84 24 84 50 00 00 	lea    0x5084(%esp),%eax
58ec7e:	b9 10 00 00 00       	mov    $0x10,%ecx
58ec83:	33 d2                	xor    %edx,%edx
58ec85:	e8 2a a5 ff ff       	call   0x5891b4
58ec8a:	be 08 00 00 00       	mov    $0x8,%esi
58ec8f:	4e                   	dec    %esi
58ec90:	8b 04 24             	mov    (%esp),%eax
58ec93:	8b 13                	mov    (%ebx),%edx
58ec95:	0f b7 04 50          	movzwl (%eax,%edx,2),%eax
58ec99:	83 c3 04             	add    $0x4,%ebx
58ec9c:	8b 0b                	mov    (%ebx),%ecx
58ec9e:	d3 e0                	shl    %cl,%eax
58eca0:	83 c3 04             	add    $0x4,%ebx
58eca3:	8b 13                	mov    (%ebx),%edx
58eca5:	01 84 94 84 50 00 00 	add    %eax,0x5084(%esp,%edx,4)
58ecac:	83 c3 04             	add    $0x4,%ebx
58ecaf:	85 f6                	test   %esi,%esi
58ecb1:	75 dc                	jne    0x58ec8f
58ecb3:	8b b7 00 01 00 00    	mov    0x100(%edi),%esi