606981:	8b c6                	mov    %esi,%eax
606983:	e9 11 01 00 00       	jmp    0x606a99
606988:	83 7d 10 00          	cmpl   $0x0,0x10(%ebp)
60698c:	76 e4                	jbe    0x606972
60698e:	83 7d 14 00          	cmpl   $0x0,0x14(%ebp)
606992:	74 de                	je     0x606972
606994:	83 7d 18 00          	cmpl   $0x0,0x18(%ebp)
606998:	76 d8                	jbe    0x606972
60699a:	8b 75 1c             	mov    0x1c(%ebp),%esi
60699d:	83 fe 41             	cmp    $0x41,%esi
6069a0:	74 13                	je     0x6069b5
6069a2:	83 fe 45             	cmp    $0x45,%esi
6069a5:	74 0e                	je     0x6069b5
6069a7:	83 fe 46             	cmp    $0x46,%esi
6069aa:	74 09                	je     0x6069b5
6069ac:	c6 45 fc 00          	movb   $0x0,-0x4(%ebp)
6069b0:	83 fe 47             	cmp    $0x47,%esi
6069b3:	75 04                	jne    0x6069b9
6069b5:	c6 45 fc 01          	movb   $0x1,-0x4(%ebp)
6069b9:	8b 45 24             	mov    0x24(%ebp),%eax
6069bc:	83 e0 08             	and    $0x8,%eax
6069bf:	83 c8 00             	or     $0x0,%eax
6069c2:	53                   	push   %ebx
6069c3:	8b 5d 08             	mov    0x8(%ebp),%ebx
6069c6:	75 39                	jne    0x606a01
6069c8:	53                   	push   %ebx
6069c9:	e8 49 f7 ff ff       	call   0x606117
6069ce:	59                   	pop    %ecx
6069cf:	85 c0                	test   %eax,%eax
6069d1:	74 2e                	je     0x606a01
6069d3:	33 c9                	xor    %ecx,%ecx
6069d5:	39 4b 04             	cmp    %ecx,0x4(%ebx)
6069d8:	7f 0c                	jg     0x6069e6
6069da:	7c 04                	jl     0x6069e0
6069dc:	39 0b                	cmp    %ecx,(%ebx)
6069de:	73 06                	jae    0x6069e6
6069e0:	c6 45 f8 01          	movb   $0x1,-0x8(%ebp)
6069e4:	eb 03                	jmp    0x6069e9
6069e6:	88 4d f8             	mov    %cl,-0x8(%ebp)
6069e9:	ff 75 fc             	push   -0x4(%ebp)
6069ec:	ff 75 10             	push   0x10(%ebp)
6069ef:	57                   	push   %edi
6069f0:	ff 75 f8             	push   -0x8(%ebp)
6069f3:	50                   	push   %eax
6069f4:	e8 a0 fe ff ff       	call   0x606899
6069f9:	83 c4 14             	add    $0x14,%esp
6069fc:	e9 97 00 00 00       	jmp    0x606a98
606a01:	8b 45 24             	mov    0x24(%ebp),%eax
606a04:	83 e0 10             	and    $0x10,%eax
606a07:	83 c8 00             	or     $0x0,%eax
606a0a:	74 04                	je     0x606a10
606a0c:	6a 03                	push   $0x3
606a0e:	eb 02                	jmp    0x606a12
606a10:	6a 02                	push   $0x2
606a12:	58                   	pop    %eax
606a13:	83 fe 61             	cmp    $0x61,%esi
606a16:	7f 28                	jg     0x606a40
606a18:	74 0a                	je     0x606a24
606a1a:	83 ee 41             	sub    $0x41,%esi
606a1d:	74 05                	je     0x606a24
606a1f:	83 ee 04             	sub    $0x4,%esi
606a22:	eb 1f                	jmp    0x606a43
606a24:	ff 75 2c             	push   0x2c(%ebp)
606a27:	50                   	push   %eax
606a28:	ff 75 fc             	push   -0x4(%ebp)
606a2b:	ff 75 20             	push   0x20(%ebp)
606a2e:	ff 75 18             	push   0x18(%ebp)
606a31:	ff 75 14             	push   0x14(%ebp)
606a34:	ff 75 10             	push   0x10(%ebp)
606a37:	57                   	push   %edi
606a38:	53                   	push   %ebx
606a39:	e8 3b f7 ff ff       	call   0x606179
606a3e:	eb 55                	jmp    0x606a95
606a40:	83 ee 65             	sub    $0x65,%esi
606a43:	ff 75 2c             	push   0x2c(%ebp)
606a46:	74 36                	je     0x606a7e
606a48:	83 ee 01             	sub    $0x1,%esi
606a4b:	74 19                	je     0x606a66
606a4d:	50                   	push   %eax
606a4e:	ff 75 fc             	push   -0x4(%ebp)
606a51:	ff 75 20             	push   0x20(%ebp)
606a54:	ff 75 18             	push   0x18(%ebp)
606a57:	ff 75 14             	push   0x14(%ebp)
606a5a:	ff 75 10             	push   0x10(%ebp)
606a5d:	57                   	push   %edi
606a5e:	53                   	push   %ebx
606a5f:	e8 74 fd ff ff       	call   0x6067d8
606a64:	eb 2f                	jmp    0x606a95
606a66:	ff 75 20             	push   0x20(%ebp)
606a69:	ff 75 18             	push   0x18(%ebp)
606a6c:	ff 75 14             	push   0x14(%ebp)
606a6f:	ff 75 10             	push   0x10(%ebp)
606a72:	57                   	push   %edi
606a73:	53                   	push   %ebx
606a74:	e8 03 fc ff ff       	call   0x60667c
606a79:	83 c4 1c             	add    $0x1c,%esp
606a7c:	eb 1a                	jmp    0x606a98
606a7e:	50                   	push   %eax
606a7f:	ff 75 fc             	push   -0x4(%ebp)
606a82:	ff 75 20             	push   0x20(%ebp)
606a85:	ff 75 18             	push   0x18(%ebp)
606a88:	ff 75 14             	push   0x14(%ebp)
606a8b:	ff 75 10             	push   0x10(%ebp)
606a8e:	57                   	push   %edi
606a8f:	53                   	push   %ebx
606a90:	e8 fd f9 ff ff       	call   0x606492
606a95:	83 c4 24             	add    $0x24,%esp
606a98:	5b                   	pop    %ebx
606a99:	5f                   	pop    %edi
606a9a:	5e                   	pop    %esi
606a9b:	c9                   	leave
606a9c:	c3                   	ret
606a9d:	8b 0d d4 89 72 00    	mov    0x7289d4,%ecx
606aa3:	33 c0                	xor    %eax,%eax
606aa5:	83 c9 01             	or     $0x1,%ecx
606aa8:	39 0d c8 12 73 00    	cmp    %ecx,0x7312c8
606aae:	0f 94 c0             	sete   %al
606ab1:	c3                   	ret
606ab2:	8b ff                	mov    %edi,%edi
606ab4:	55                   	push   %ebp
606ab5:	8b ec                	mov    %esp,%ebp
606ab7:	53                   	push   %ebx
606ab8:	56                   	push   %esi
606ab9:	8b 75 08             	mov    0x8(%ebp),%esi
606abc:	57                   	push   %edi
606abd:	56                   	push   %esi
606abe:	e8 e5 8c ff ff       	call   0x5ff7a8
606ac3:	50                   	push   %eax
606ac4:	e8 c4 9a 00 00       	call   0x61058d
606ac9:	59                   	pop    %ecx
606aca:	59                   	pop    %ecx
606acb:	85 c0                	test   %eax,%eax
606acd:	0f 84 8b 00 00 00    	je     0x606b5e
606ad3:	6a 01                	push   $0x1
606ad5:	e8 1e 56 ff ff       	call   0x5fc0f8
606ada:	59                   	pop    %ecx
606adb:	6a 02                	push   $0x2
606add:	5b                   	pop    %ebx
606ade:	3b f0                	cmp    %eax,%esi
606ae0:	75 07                	jne    0x606ae9
606ae2:	bf cc 12 73 00       	mov    $0x7312cc,%edi
606ae7:	eb 10                	jmp    0x606af9
606ae9:	53                   	push   %ebx
606aea:	e8 09 56 ff ff       	call   0x5fc0f8
606aef:	59                   	pop    %ecx
606af0:	3b f0                	cmp    %eax,%esi
606af2:	75 6a                	jne    0x606b5e
606af4:	bf d0 12 73 00       	mov    $0x7312d0,%edi
606af9:	ff 05 d0 0c 73 00    	incl   0x730cd0
606aff:	8d 4e 0c             	lea    0xc(%esi),%ecx
606b02:	8b 01                	mov    (%ecx),%eax
606b04:	90                   	nop
606b05:	a9 c0 04 00 00       	test   $0x4c0,%eax
606b0a:	75 52                	jne    0x606b5e
606b0c:	b8 82 02 00 00       	mov    $0x282,%eax
606b11:	f0 09 01             	lock or %eax,(%ecx)
606b14:	8b 07                	mov    (%edi),%eax
606b16:	85 c0                	test   %eax,%eax
606b18:	75 2d                	jne    0x606b47
606b1a:	68 00 10 00 00       	push   $0x1000
606b1f:	e8 d1 f2 ff ff       	call   0x605df5
606b24:	6a 00                	push   $0x0
606b26:	89 07                	mov    %eax,(%edi)
606b28:	e8 fb dc ff ff       	call   0x604828
606b2d:	8b 07                	mov    (%edi),%eax
606b2f:	59                   	pop    %ecx
606b30:	59                   	pop    %ecx
606b31:	85 c0                	test   %eax,%eax
606b33:	75 12                	jne    0x606b47
606b35:	8d 4e 14             	lea    0x14(%esi),%ecx
606b38:	89 5e 08             	mov    %ebx,0x8(%esi)
606b3b:	89 4e 04             	mov    %ecx,0x4(%esi)
606b3e:	89 0e                	mov    %ecx,(%esi)
606b40:	89 5e 18             	mov    %ebx,0x18(%esi)
606b43:	b0 01                	mov    $0x1,%al
606b45:	eb 19                	jmp    0x606b60
606b47:	89 46 04             	mov    %eax,0x4(%esi)
606b4a:	8b 07                	mov    (%edi),%eax
606b4c:	89 06                	mov    %eax,(%esi)
606b4e:	c7 46 08 00 10 00 00 	movl   $0x1000,0x8(%esi)
606b55:	c7 46 18 00 10 00 00 	movl   $0x1000,0x18(%esi)
606b5c:	eb e5                	jmp    0x606b43
606b5e:	32 c0                	xor    %al,%al
606b60:	5f                   	pop    %edi
606b61:	5e                   	pop    %esi
606b62:	5b                   	pop    %ebx
606b63:	5d                   	pop    %ebp
606b64:	c3                   	ret
606b65:	8b ff                	mov    %edi,%edi
606b67:	55                   	push   %ebp
606b68:	8b ec                	mov    %esp,%ebp
606b6a:	80 7d 08 00          	cmpb   $0x0,0x8(%ebp)
606b6e:	74 2d                	je     0x606b9d
606b70:	56                   	push   %esi
606b71:	8b 75 0c             	mov    0xc(%ebp),%esi
606b74:	57                   	push   %edi
606b75:	8d 7e 0c             	lea    0xc(%esi),%edi
606b78:	8b 07                	mov    (%edi),%eax
606b7a:	90                   	nop
606b7b:	c1 e8 09             	shr    $0x9,%eax
606b7e:	a8 01                	test   $0x1,%al
606b80:	74 19                	je     0x606b9b
606b82:	56                   	push   %esi
606b83:	e8 d4 44 ff ff       	call   0x5fb05c
606b88:	59                   	pop    %ecx
606b89:	b8 7f fd ff ff       	mov    $0xfffffd7f,%eax
606b8e:	f0 21 07             	lock and %eax,(%edi)
606b91:	33 c0                	xor    %eax,%eax
606b93:	89 46 18             	mov    %eax,0x18(%esi)
606b96:	89 46 04             	mov    %eax,0x4(%esi)
606b99:	89 06                	mov    %eax,(%esi)
606b9b:	5f                   	pop    %edi
606b9c:	5e                   	pop    %esi
606b9d:	5d                   	pop    %ebp
606b9e:	c3                   	ret
606b9f:	e8 61 b2 00 00       	call   0x611e05
606ba4:	50                   	push   %eax
606ba5:	e8 39 b2 00 00       	call   0x611de3
606baa:	59                   	pop    %ecx
606bab:	c3                   	ret
606bac:	8b ff                	mov    %edi,%edi
606bae:	55                   	push   %ebp
606baf:	8b ec                	mov    %esp,%ebp
606bb1:	dd 45 08             	fldl   0x8(%ebp)
606bb4:	d9 ee                	fldz
606bb6:	dd e1                	fucom  %st(1)
606bb8:	df e0                	fnstsw %ax
606bba:	56                   	push   %esi
606bbb:	f6 c4 44             	test   $0x44,%ah
606bbe:	7a 09                	jp     0x606bc9
606bc0:	dd d9                	fstp   %st(1)
606bc2:	33 f6                	xor    %esi,%esi
606bc4:	e9 ad 00 00 00       	jmp    0x606c76
606bc9:	57                   	push   %edi
606bca:	66 8b 7d 0e          	mov    0xe(%ebp),%di
606bce:	0f b7 c7             	movzwl %di,%eax
606bd1:	a9 f0 7f 00 00       	test   $0x7ff0,%eax
606bd6:	75 7a                	jne    0x606c52
606bd8:	8b 4d 0c             	mov    0xc(%ebp),%ecx
606bdb:	8b 55 08             	mov    0x8(%ebp),%edx
606bde:	f7 c1 ff ff 0f 00    	test   $0xfffff,%ecx
606be4:	75 04                	jne    0x606bea
606be6:	85 d2                	test   %edx,%edx
606be8:	74 68                	je     0x606c52
606bea:	de d9                	fcompp
606bec:	be 03 fc ff ff       	mov    $0xfffffc03,%esi
606bf1:	df e0                	fnstsw %ax
606bf3:	53                   	push   %ebx
606bf4:	33 db                	xor    %ebx,%ebx
606bf6:	f6 c4 41             	test   $0x41,%ah
606bf9:	75 01                	jne    0x606bfc
606bfb:	43                   	inc    %ebx
606bfc:	f6 45 0e 10          	testb  $0x10,0xe(%ebp)
606c00:	75 1f                	jne    0x606c21
606c02:	03 c9                	add    %ecx,%ecx
606c04:	89 4d 0c             	mov    %ecx,0xc(%ebp)
606c07:	85 d2                	test   %edx,%edx
606c09:	79 06                	jns    0x606c11
606c0b:	83 c9 01             	or     $0x1,%ecx
606c0e:	89 4d 0c             	mov    %ecx,0xc(%ebp)
606c11:	03 d2                	add    %edx,%edx
606c13:	4e                   	dec    %esi
606c14:	f6 45 0e 10          	testb  $0x10,0xe(%ebp)
606c18:	74 e8                	je     0x606c02
606c1a:	66 8b 7d 0e          	mov    0xe(%ebp),%di
606c1e:	89 55 08             	mov    %edx,0x8(%ebp)
606c21:	b8 ef ff 00 00       	mov    $0xffef,%eax
606c26:	66 23 f8             	and    %ax,%di
606c29:	85 db                	test   %ebx,%ebx
606c2b:	0f b7 c7             	movzwl %di,%eax
606c2e:	66 89 7d 0e          	mov    %di,0xe(%ebp)
606c32:	5b                   	pop    %ebx
606c33:	74 09                	je     0x606c3e
606c35:	0d 00 80 00 00       	or     $0x8000,%eax
606c3a:	66 89 45 0e          	mov    %ax,0xe(%ebp)
606c3e:	dd 45 08             	fldl   0x8(%ebp)
606c41:	6a 00                	push   $0x0
606c43:	51                   	push   %ecx
606c44:	51                   	push   %ecx
606c45:	dd 1c 24             	fstpl  (%esp)
606c48:	e8 31 00 00 00       	call   0x606c7e
606c4d:	83 c4 0c             	add    $0xc,%esp
606c50:	eb 23                	jmp    0x606c75
606c52:	6a 00                	push   $0x0
606c54:	51                   	push   %ecx
606c55:	dd d8                	fstp   %st(0)
606c57:	51                   	push   %ecx
606c58:	dd 1c 24             	fstpl  (%esp)
606c5b:	e8 1e 00 00 00       	call   0x606c7e
606c60:	0f b7 f7             	movzwl %di,%esi
606c63:	83 c4 0c             	add    $0xc,%esp
606c66:	c1 ee 04             	shr    $0x4,%esi
606c69:	81 e6 ff 07 00 00    	and    $0x7ff,%esi
606c6f:	81 ee fe 03 00 00    	sub    $0x3fe,%esi
606c75:	5f                   	pop    %edi
606c76:	8b 45 10             	mov    0x10(%ebp),%eax
606c79:	89 30                	mov    %esi,(%eax)
606c7b:	5e                   	pop    %esi
606c7c:	5d                   	pop    %ebp
606c7d:	c3                   	ret
606c7e:	8b ff                	mov    %edi,%edi
606c80:	55                   	push   %ebp
606c81:	8b ec                	mov    %esp,%ebp
606c83:	51                   	push   %ecx
606c84:	51                   	push   %ecx
606c85:	8b 4d 10             	mov    0x10(%ebp),%ecx
606c88:	0f b7 45 0e          	movzwl 0xe(%ebp),%eax
606c8c:	dd 45 08             	fldl   0x8(%ebp)
606c8f:	25 0f 80 00 00       	and    $0x800f,%eax
606c94:	dd 5d f8             	fstpl  -0x8(%ebp)
606c97:	8d 89 fe 03 00 00    	lea    0x3fe(%ecx),%ecx
606c9d:	c1 e1 04             	shl    $0x4,%ecx
606ca0:	0b c8                	or     %eax,%ecx
606ca2:	66 89 4d fe          	mov    %cx,-0x2(%ebp)
606ca6:	dd 45 f8             	fldl   -0x8(%ebp)
606ca9:	c9                   	leave
606caa:	c3                   	ret
606cab:	8b ff                	mov    %edi,%edi
606cad:	55                   	push   %ebp
606cae:	8b ec                	mov    %esp,%ebp
606cb0:	81 7d 0c 00 00 f0 7f 	cmpl   $0x7ff00000,0xc(%ebp)
606cb7:	8b 45 08             	mov    0x8(%ebp),%eax
606cba:	75 07                	jne    0x606cc3
606cbc:	85 c0                	test   %eax,%eax
606cbe:	75 15                	jne    0x606cd5
606cc0:	40                   	inc    %eax
606cc1:	5d                   	pop    %ebp
606cc2:	c3                   	ret
606cc3:	81 7d 0c 00 00 f0 ff 	cmpl   $0xfff00000,0xc(%ebp)
606cca:	75 09                	jne    0x606cd5
606ccc:	85 c0                	test   %eax,%eax
606cce:	75 05                	jne    0x606cd5
606cd0:	6a 02                	push   $0x2
606cd2:	58                   	pop    %eax
606cd3:	5d                   	pop    %ebp
606cd4:	c3                   	ret
606cd5:	66 8b 4d 0e          	mov    0xe(%ebp),%cx
606cd9:	ba f8 7f 00 00       	mov    $0x7ff8,%edx
606cde:	66 23 ca             	and    %dx,%cx
606ce1:	66 3b ca             	cmp    %dx,%cx
606ce4:	75 04                	jne    0x606cea
606ce6:	6a 03                	push   $0x3
606ce8:	eb e8                	jmp    0x606cd2
606cea:	ba f0 7f 00 00       	mov    $0x7ff0,%edx
606cef:	66 3b ca             	cmp    %dx,%cx
606cf2:	75 11                	jne    0x606d05
606cf4:	f7 45 0c ff ff 07 00 	testl  $0x7ffff,0xc(%ebp)
606cfb:	75 04                	jne    0x606d01
606cfd:	85 c0                	test   %eax,%eax
606cff:	74 04                	je     0x606d05