58680b:	8b da                	mov    %edx,%ebx
58680d:	8b f8                	mov    %eax,%edi
58680f:	8b c3                	mov    %ebx,%eax
586811:	e8 06 f7 ff ff       	call   0x585f1c
586816:	3d 00 00 00 04       	cmp    $0x4000000,%eax
58681b:	72 1a                	jb     0x586837
58681d:	85 f6                	test   %esi,%esi
58681f:	74 05                	je     0x586826
586821:	83 fe 02             	cmp    $0x2,%esi
586824:	75 11                	jne    0x586837
586826:	8b 4d 08             	mov    0x8(%ebp),%ecx
586829:	8b d3                	mov    %ebx,%edx
58682b:	8b c7                	mov    %edi,%eax
58682d:	e8 66 f7 ff ff       	call   0x585f98
586832:	e9 f8 00 00 00       	jmp    0x58692f
586837:	ba 74 70 6b 62       	mov    $0x626b7074,%edx
58683c:	8b c3                	mov    %ebx,%eax
58683e:	e8 b1 bd ff ff       	call   0x5825f4
586843:	85 c0                	test   %eax,%eax
586845:	0f 84 a6 00 00 00    	je     0x5868f1
58684b:	83 fe 01             	cmp    $0x1,%esi
58684e:	0f 85 9d 00 00 00    	jne    0x5868f1
586854:	8d 45 e8             	lea    -0x18(%ebp),%eax
586857:	8b d3                	mov    %ebx,%edx
586859:	e8 4e f6 ff ff       	call   0x585eac
58685e:	8d 45 a0             	lea    -0x60(%ebp),%eax
586861:	8b d3                	mov    %ebx,%edx
586863:	e8 30 f6 ff ff       	call   0x585e98
586868:	8d 45 e8             	lea    -0x18(%ebp),%eax
58686b:	50                   	push   %eax
58686c:	e8 fb 52 ff ff       	call   0x57bb6c
586871:	8b c8                	mov    %eax,%ecx
586873:	8d 55 a0             	lea    -0x60(%ebp),%edx
586876:	8d 45 d0             	lea    -0x30(%ebp),%eax
586879:	e8 a2 f6 ff ff       	call   0x585f20
58687e:	8d 4d d0             	lea    -0x30(%ebp),%ecx
586881:	8d 55 88             	lea    -0x78(%ebp),%edx
586884:	33 c0                	xor    %eax,%eax
586886:	e8 c5 f9 ff ff       	call   0x586250
58688b:	33 c0                	xor    %eax,%eax
58688d:	89 45 98             	mov    %eax,-0x68(%ebp)
586890:	89 45 9c             	mov    %eax,-0x64(%ebp)
586893:	8b 45 98             	mov    -0x68(%ebp),%eax
586896:	89 45 90             	mov    %eax,-0x70(%ebp)
586899:	8b 45 9c             	mov    -0x64(%ebp),%eax
58689c:	89 45 94             	mov    %eax,-0x6c(%ebp)
58689f:	dd 45 88             	fldl   -0x78(%ebp)
5868a2:	d8 1d 38 69 58 00    	fcomps 0x586938
5868a8:	df e0                	fnstsw %ax
5868aa:	9e                   	sahf
5868ab:	76 0c                	jbe    0x5868b9
5868ad:	33 c0                	xor    %eax,%eax
5868af:	89 45 88             	mov    %eax,-0x78(%ebp)
5868b2:	c7 45 8c 00 00 49 40 	movl   $0x40490000,-0x74(%ebp)
5868b9:	8d 4d 88             	lea    -0x78(%ebp),%ecx
5868bc:	8d 55 b8             	lea    -0x48(%ebp),%edx
5868bf:	33 c0                	xor    %eax,%eax
5868c1:	e8 0a fb ff ff       	call   0x5863d0
5868c6:	f6 45 08 01          	testb  $0x1,0x8(%ebp)
5868ca:	75 17                	jne    0x5868e3
5868cc:	8d 45 b8             	lea    -0x48(%ebp),%eax
5868cf:	50                   	push   %eax
5868d0:	e8 97 52 ff ff       	call   0x57bb6c
5868d5:	8b d0                	mov    %eax,%edx
5868d7:	8d 4d a0             	lea    -0x60(%ebp),%ecx
5868da:	8b c7                	mov    %edi,%eax
5868dc:	e8 3f f6 ff ff       	call   0x585f20
5868e1:	eb 0e                	jmp    0x5868f1
5868e3:	56                   	push   %esi
5868e4:	57                   	push   %edi
5868e5:	8d 75 b8             	lea    -0x48(%ebp),%esi
5868e8:	b9 06 00 00 00       	mov    $0x6,%ecx
5868ed:	f3 a5                	rep movsl %ds:(%esi),%es:(%edi)
5868ef:	5f                   	pop    %edi
5868f0:	5e                   	pop    %esi
5868f1:	83 fe 01             	cmp    $0x1,%esi
5868f4:	75 2a                	jne    0x586920
5868f6:	8b c3                	mov    %ebx,%eax
5868f8:	e8 ef 65 ff ff       	call   0x57ceec
5868fd:	3d 72 74 72 70       	cmp    $0x70727472,%eax
586902:	75 1c                	jne    0x586920
586904:	8b c3                	mov    %ebx,%eax
586906:	e8 b9 5d ff ff       	call   0x57c6c4
58690b:	3d 4b 59 4d 43       	cmp    $0x434d594b,%eax
586910:	75 0e                	jne    0x586920
586912:	8b 4d 08             	mov    0x8(%ebp),%ecx
586915:	8b d3                	mov    %ebx,%edx
586917:	8b c7                	mov    %edi,%eax
586919:	e8 f2 fb ff ff       	call   0x586510
58691e:	eb 0f                	jmp    0x58692f
586920:	8b 45 08             	mov    0x8(%ebp),%eax
586923:	50                   	push   %eax
586924:	8b cf                	mov    %edi,%ecx
586926:	8b d6                	mov    %esi,%edx
586928:	8b c3                	mov    %ebx,%eax
58692a:	e8 61 fd ff ff       	call   0x586690
58692f:	5f                   	pop    %edi
586930:	5e                   	pop    %esi
586931:	5b                   	pop    %ebx
586932:	8b e5                	mov    %ebp,%esp
586934:	5d                   	pop    %ebp
586935:	c2 04 00             	ret    $0x4
586938:	00 00                	add    %al,(%eax)
58693a:	48                   	dec    %eax
58693b:	42                   	inc    %edx
58693c:	55                   	push   %ebp
58693d:	8b ec                	mov    %esp,%ebp
58693f:	81 c4 80 fe ff ff    	add    $0xfffffe80,%esp
586945:	53                   	push   %ebx
586946:	56                   	push   %esi
586947:	57                   	push   %edi
586948:	8b 5d 18             	mov    0x18(%ebp),%ebx
58694b:	8b 75 20             	mov    0x20(%ebp),%esi
58694e:	ff 72 04             	push   0x4(%edx)
586951:	ff 32                	push   (%edx)
586953:	ff 72 0c             	push   0xc(%edx)
586956:	ff 72 08             	push   0x8(%edx)
586959:	ff 72 14             	push   0x14(%edx)
58695c:	ff 72 10             	push   0x10(%edx)
58695f:	8d 45 e8             	lea    -0x18(%ebp),%eax
586962:	e8 6d 4e ff ff       	call   0x57b7d4
586967:	8d 4d e8             	lea    -0x18(%ebp),%ecx
58696a:	8d 45 d0             	lea    -0x30(%ebp),%eax
58696d:	8b d6                	mov    %esi,%edx
58696f:	e8 e8 56 ff ff       	call   0x57c05c
586974:	ff 73 04             	push   0x4(%ebx)
586977:	ff 33                	push   (%ebx)
586979:	ff 73 0c             	push   0xc(%ebx)
58697c:	ff 73 08             	push   0x8(%ebx)
58697f:	ff 73 14             	push   0x14(%ebx)
586982:	ff 73 10             	push   0x10(%ebx)
586985:	8d 45 b8             	lea    -0x48(%ebp),%eax
586988:	e8 47 4e ff ff       	call   0x57b7d4
58698d:	8d 4d b8             	lea    -0x48(%ebp),%ecx
586990:	8d 45 a0             	lea    -0x60(%ebp),%eax
586993:	8b 55 10             	mov    0x10(%ebp),%edx
586996:	e8 c1 56 ff ff       	call   0x57c05c
58699b:	dd 45 d0             	fldl   -0x30(%ebp)
58699e:	dc 75 a0             	fdivl  -0x60(%ebp)
5869a1:	83 c4 f8             	add    $0xfffffff8,%esp
5869a4:	dd 1c 24             	fstpl  (%esp)
5869a7:	9b                   	fwait
5869a8:	6a 00                	push   $0x0
5869aa:	6a 00                	push   $0x0
5869ac:	6a 00                	push   $0x0
5869ae:	6a 00                	push   $0x0
5869b0:	8d 85 58 ff ff ff    	lea    -0xa8(%ebp),%eax
5869b6:	e8 19 4e ff ff       	call   0x57b7d4
5869bb:	6a 00                	push   $0x0
5869bd:	6a 00                	push   $0x0
5869bf:	dd 45 d8             	fldl   -0x28(%ebp)
5869c2:	dc 75 a8             	fdivl  -0x58(%ebp)
5869c5:	83 c4 f8             	add    $0xfffffff8,%esp
5869c8:	dd 1c 24             	fstpl  (%esp)
5869cb:	9b                   	fwait
5869cc:	6a 00                	push   $0x0
5869ce:	6a 00                	push   $0x0
5869d0:	8d 85 70 ff ff ff    	lea    -0x90(%ebp),%eax
5869d6:	e8 f9 4d ff ff       	call   0x57b7d4
5869db:	6a 00                	push   $0x0
5869dd:	6a 00                	push   $0x0
5869df:	6a 00                	push   $0x0
5869e1:	6a 00                	push   $0x0
5869e3:	dd 45 e0             	fldl   -0x20(%ebp)
5869e6:	dc 75 b0             	fdivl  -0x50(%ebp)
5869e9:	83 c4 f8             	add    $0xfffffff8,%esp
5869ec:	dd 1c 24             	fstpl  (%esp)
5869ef:	9b                   	fwait
5869f0:	8d 45 88             	lea    -0x78(%ebp),%eax
5869f3:	e8 dc 4d ff ff       	call   0x57b7d4
5869f8:	8d bd 10 ff ff ff    	lea    -0xf0(%ebp),%edi
5869fe:	b9 12 00 00 00       	mov    $0x12,%ecx
586a03:	f3 a5                	rep movsl %ds:(%esi),%es:(%edi)
586a05:	8d 95 c8 fe ff ff    	lea    -0x138(%ebp),%edx
586a0b:	8d 85 10 ff ff ff    	lea    -0xf0(%ebp),%eax
586a11:	e8 da 4e ff ff       	call   0x57b8f0
586a16:	8d 8d 58 ff ff ff    	lea    -0xa8(%ebp),%ecx
586a1c:	8d 95 c8 fe ff ff    	lea    -0x138(%ebp),%edx
586a22:	8d 85 80 fe ff ff    	lea    -0x180(%ebp),%eax
586a28:	e8 1b 57 ff ff       	call   0x57c148
586a2d:	8d 95 80 fe ff ff    	lea    -0x180(%ebp),%edx
586a33:	8b 4d 10             	mov    0x10(%ebp),%ecx
586a36:	8b 45 0c             	mov    0xc(%ebp),%eax
586a39:	e8 0a 57 ff ff       	call   0x57c148
586a3e:	6a 00                	push   $0x0
586a40:	6a 00                	push   $0x0
586a42:	6a 00                	push   $0x0
586a44:	6a 00                	push   $0x0
586a46:	6a 00                	push   $0x0
586a48:	6a 00                	push   $0x0
586a4a:	8b 45 08             	mov    0x8(%ebp),%eax
586a4d:	e8 82 4d ff ff       	call   0x57b7d4
586a52:	5f                   	pop    %edi
586a53:	5e                   	pop    %esi
586a54:	5b                   	pop    %ebx
586a55:	8b e5                	mov    %ebp,%esp
586a57:	5d                   	pop    %ebp
586a58:	c2 1c 00             	ret    $0x1c
586a5b:	90                   	nop
586a5c:	55                   	push   %ebp
586a5d:	8b ec                	mov    %esp,%ebp
586a5f:	83 c4 e4             	add    $0xffffffe4,%esp
586a62:	53                   	push   %ebx
586a63:	56                   	push   %esi
586a64:	89 4d fc             	mov    %ecx,-0x4(%ebp)
586a67:	8b da                	mov    %edx,%ebx
586a69:	8b 75 08             	mov    0x8(%ebp),%esi
586a6c:	0f b7 10             	movzwl (%eax),%edx
586a6f:	03 d2                	add    %edx,%edx
586a71:	89 55 f0             	mov    %edx,-0x10(%ebp)
586a74:	0f b7 50 02          	movzwl 0x2(%eax),%edx
586a78:	03 d2                	add    %edx,%edx
586a7a:	89 55 f4             	mov    %edx,-0xc(%ebp)
586a7d:	0f b7 40 04          	movzwl 0x4(%eax),%eax
586a81:	03 c0                	add    %eax,%eax
586a83:	89 45 f8             	mov    %eax,-0x8(%ebp)
586a86:	8d 4d f0             	lea    -0x10(%ebp),%ecx
586a89:	8d 45 e4             	lea    -0x1c(%ebp),%eax
586a8c:	8b 55 fc             	mov    -0x4(%ebp),%edx
586a8f:	e8 a0 5c ff ff       	call   0x57c734
586a94:	8b 06                	mov    (%esi),%eax
586a96:	03 45 e4             	add    -0x1c(%ebp),%eax
586a99:	d1 e8                	shr    $1,%eax
586a9b:	e8 c4 e3 ff ff       	call   0x584e64
586aa0:	66 89 03             	mov    %ax,(%ebx)
586aa3:	8b 46 04             	mov    0x4(%esi),%eax
586aa6:	03 45 e8             	add    -0x18(%ebp),%eax
586aa9:	d1 e8                	shr    $1,%eax
586aab:	e8 b4 e3 ff ff       	call   0x584e64
586ab0:	66 89 43 02          	mov    %ax,0x2(%ebx)
586ab4:	8b 46 08             	mov    0x8(%esi),%eax
586ab7:	03 45 ec             	add    -0x14(%ebp),%eax
586aba:	d1 e8                	shr    $1,%eax
586abc:	e8 a3 e3 ff ff       	call   0x584e64
586ac1:	66 89 43 04          	mov    %ax,0x4(%ebx)
586ac5:	5e                   	pop    %esi
586ac6:	5b                   	pop    %ebx
586ac7:	8b e5                	mov    %ebp,%esp
586ac9:	5d                   	pop    %ebp
586aca:	c2 04 00             	ret    $0x4
586acd:	8d 40 00             	lea    0x0(%eax),%eax
586ad0:	55                   	push   %ebp
586ad1:	8b ec                	mov    %esp,%ebp
586ad3:	83 c4 80             	add    $0xffffff80,%esp
586ad6:	53                   	push   %ebx
586ad7:	56                   	push   %esi
586ad8:	57                   	push   %edi
586ad9:	8b f1                	mov    %ecx,%esi
586adb:	89 55 f8             	mov    %edx,-0x8(%ebp)
586ade:	89 45 fc             	mov    %eax,-0x4(%ebp)
586ae1:	8b 7d 0c             	mov    0xc(%ebp),%edi
586ae4:	8b 5d 10             	mov    0x10(%ebp),%ebx
586ae7:	8b 45 fc             	mov    -0x4(%ebp),%eax
586aea:	50                   	push   %eax
586aeb:	8d 45 98             	lea    -0x68(%ebp),%eax
586aee:	8b ce                	mov    %esi,%ecx
586af0:	8b 55 f8             	mov    -0x8(%ebp),%edx
586af3:	e8 28 f4 ff ff       	call   0x585f20
586af8:	8b 45 18             	mov    0x18(%ebp),%eax
586afb:	50                   	push   %eax
586afc:	8d 45 80             	lea    -0x80(%ebp),%eax
586aff:	8b cb                	mov    %ebx,%ecx
586b01:	8b 55 14             	mov    0x14(%ebp),%edx
586b04:	e8 17 f4 ff ff       	call   0x585f20
586b09:	dd 45 98             	fldl   -0x68(%ebp)
586b0c:	dc 26                	fsubl  (%esi)
586b0e:	dd 5d c0             	fstpl  -0x40(%ebp)
586b11:	9b dd 45 a0          	fldl   -0x60(%ebp)
586b15:	dc 66 08             	fsubl  0x8(%esi)
586b18:	dd 5d b8             	fstpl  -0x48(%ebp)
586b1b:	9b dd 45 a8          	fldl   -0x58(%ebp)
586b1f:	dc 66 10             	fsubl  0x10(%esi)
586b22:	dd 5d b0             	fstpl  -0x50(%ebp)
586b25:	9b dd 45 80          	fldl   -0x80(%ebp)
586b29:	dc 23                	fsubl  (%ebx)
586b2b:	dc 75 c0             	fdivl  -0x40(%ebp)
586b2e:	dd 5d f0             	fstpl  -0x10(%ebp)
586b31:	9b dd 45 88          	fldl   -0x78(%ebp)
586b35:	dc 63 08             	fsubl  0x8(%ebx)
586b38:	dc 75 b8             	fdivl  -0x48(%ebp)
586b3b:	dd 5d e8             	fstpl  -0x18(%ebp)
586b3e:	9b dd 45 90          	fldl   -0x70(%ebp)
586b42:	dc 63 10             	fsubl  0x10(%ebx)
586b45:	dc 75 b0             	fdivl  -0x50(%ebp)
586b48:	dd 5d e0             	fstpl  -0x20(%ebp)
586b4b:	9b dd 45 80          	fldl   -0x80(%ebp)
586b4f:	dc 65 98             	fsubl  -0x68(%ebp)
586b52:	dd 03                	fldl   (%ebx)
586b54:	d9 e0                	fchs
586b56:	de c9                	fmulp  %st,%st(1)
586b58:	dc 75 c0             	fdivl  -0x40(%ebp)
586b5b:	dd 5d d8             	fstpl  -0x28(%ebp)
586b5e:	9b dd 45 88          	fldl   -0x78(%ebp)
586b62:	dc 65 a0             	fsubl  -0x60(%ebp)
586b65:	dd 43 08             	fldl   0x8(%ebx)
586b68:	d9 e0                	fchs
586b6a:	de c9                	fmulp  %st,%st(1)
586b6c:	dc 75 b8             	fdivl  -0x48(%ebp)
586b6f:	dd 5d d0             	fstpl  -0x30(%ebp)
586b72:	9b dd 45 90          	fldl   -0x70(%ebp)
586b76:	dc 65 a8             	fsubl  -0x58(%ebp)
586b79:	dd 43 10             	fldl   0x10(%ebx)
586b7c:	d9 e0                	fchs
586b7e:	de c9                	fmulp  %st,%st(1)
586b80:	dc 75 b0             	fdivl  -0x50(%ebp)
586b83:	dd 5d c8             	fstpl  -0x38(%ebp)
586b86:	9b                   	fwait
586b87:	8b c7                	mov    %edi,%eax
586b89:	e8 72 4c ff ff       	call   0x57b800
586b8e:	8b 45 f0             	mov    -0x10(%ebp),%eax
586b91:	89 07                	mov    %eax,(%edi)
586b93:	8b 45 f4             	mov    -0xc(%ebp),%eax
586b96:	89 47 04             	mov    %eax,0x4(%edi)
586b99:	8b 45 e8             	mov    -0x18(%ebp),%eax
586b9c:	89 47 20             	mov    %eax,0x20(%edi)
586b9f:	8b 45 ec             	mov    -0x14(%ebp),%eax
586ba2:	89 47 24             	mov    %eax,0x24(%edi)
586ba5:	8b 45 e0             	mov    -0x20(%ebp),%eax
586ba8:	89 47 40             	mov    %eax,0x40(%edi)
586bab:	8b 45 e4             	mov    -0x1c(%ebp),%eax
586bae:	89 47 44             	mov    %eax,0x44(%edi)
586bb1:	ff 75 dc             	push   -0x24(%ebp)
586bb4:	ff 75 d8             	push   -0x28(%ebp)
586bb7:	ff 75 d4             	push   -0x2c(%ebp)
586bba:	ff 75 d0             	push   -0x30(%ebp)
586bbd:	ff 75 cc             	push   -0x34(%ebp)
586bc0:	ff 75 c8             	push   -0x38(%ebp)
586bc3:	8b 45 08             	mov    0x8(%ebp),%eax
586bc6:	e8 09 4c ff ff       	call   0x57b7d4
586bcb:	5f                   	pop    %edi
586bcc:	5e                   	pop    %esi
586bcd:	5b                   	pop    %ebx
586bce:	8b e5                	mov    %ebp,%esp
586bd0:	5d                   	pop    %ebp
586bd1:	c2 14 00             	ret    $0x14
586bd4:	3d ff ff 00 00       	cmp    $0xffff,%eax
586bd9:	75 05                	jne    0x586be0
586bdb:	66 b8 ff ff          	mov    $0xffff,%ax
586bdf:	c3                   	ret
586be0:	3d 00 ff 00 00       	cmp    $0xff00,%eax
586be5:	7e 04                	jle    0x586beb
586be7:	66 b8 00 ff          	mov    $0xff00,%ax
586beb:	c3                   	ret
586bec:	55                   	push   %ebp
586bed:	8b ec                	mov    %esp,%ebp
586bef:	dd 45 08             	fldl   0x8(%ebp)
586bf2:	d8 05 08 6c 58 00    	fadds  0x586c08
586bf8:	d8 0d 0c 6c 58 00    	fmuls  0x586c0c
586bfe:	e8 bd c0 e7 ff       	call   0x402cc0
586c03:	5d                   	pop    %ebp