604875:	ff 30                	push   (%eax)
604877:	e8 7d 4a 00 00       	call   0x6092f9
60487c:	59                   	pop    %ecx
60487d:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
604881:	8b 45 0c             	mov    0xc(%ebp),%eax
604884:	8b 00                	mov    (%eax),%eax
604886:	8b 30                	mov    (%eax),%esi
604888:	8b d6                	mov    %esi,%edx
60488a:	c1 fa 06             	sar    $0x6,%edx
60488d:	8b c6                	mov    %esi,%eax
60488f:	83 e0 3f             	and    $0x3f,%eax
604892:	6b c8 38             	imul   $0x38,%eax,%ecx
604895:	8b 04 95 b8 10 73 00 	mov    0x7310b8(,%edx,4),%eax
60489c:	f6 44 08 28 01       	testb  $0x1,0x28(%eax,%ecx,1)
6048a1:	74 0b                	je     0x6048ae
6048a3:	56                   	push   %esi
6048a4:	e8 d2 00 00 00       	call   0x60497b
6048a9:	59                   	pop    %ecx
6048aa:	8b f0                	mov    %eax,%esi
6048ac:	eb 0e                	jmp    0x6048bc
6048ae:	e8 46 87 fe ff       	call   0x5ecff9
6048b3:	c7 00 09 00 00 00    	movl   $0x9,(%eax)
6048b9:	83 ce ff             	or     $0xffffffff,%esi
6048bc:	89 75 e4             	mov    %esi,-0x1c(%ebp)
6048bf:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
6048c6:	e8 17 00 00 00       	call   0x6048e2
6048cb:	8b c6                	mov    %esi,%eax
6048cd:	8b 4d f0             	mov    -0x10(%ebp),%ecx
6048d0:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
6048d7:	59                   	pop    %ecx
6048d8:	5f                   	pop    %edi
6048d9:	5e                   	pop    %esi
6048da:	5b                   	pop    %ebx
6048db:	c9                   	leave
6048dc:	c2 0c 00             	ret    $0xc
6048df:	8b 75 e4             	mov    -0x1c(%ebp),%esi
6048e2:	8b 45 10             	mov    0x10(%ebp),%eax
6048e5:	ff 30                	push   (%eax)
6048e7:	e8 c2 4a 00 00       	call   0x6093ae
6048ec:	59                   	pop    %ecx
6048ed:	c3                   	ret
6048ee:	8b ff                	mov    %edi,%edi
6048f0:	55                   	push   %ebp
6048f1:	8b ec                	mov    %esp,%ebp
6048f3:	83 ec 10             	sub    $0x10,%esp
6048f6:	56                   	push   %esi
6048f7:	8b 75 08             	mov    0x8(%ebp),%esi
6048fa:	83 fe fe             	cmp    $0xfffffffe,%esi
6048fd:	75 15                	jne    0x604914
6048ff:	e8 e2 86 fe ff       	call   0x5ecfe6
604904:	83 20 00             	andl   $0x0,(%eax)
604907:	e8 ed 86 fe ff       	call   0x5ecff9
60490c:	c7 00 09 00 00 00    	movl   $0x9,(%eax)
604912:	eb 61                	jmp    0x604975
604914:	85 f6                	test   %esi,%esi
604916:	78 45                	js     0x60495d
604918:	3b 35 b8 12 73 00    	cmp    0x7312b8,%esi
60491e:	73 3d                	jae    0x60495d
604920:	8b c6                	mov    %esi,%eax
604922:	8b d6                	mov    %esi,%edx
604924:	83 e0 3f             	and    $0x3f,%eax
604927:	c1 fa 06             	sar    $0x6,%edx
60492a:	6b c8 38             	imul   $0x38,%eax,%ecx
60492d:	8b 04 95 b8 10 73 00 	mov    0x7310b8(,%edx,4),%eax
604934:	f6 44 08 28 01       	testb  $0x1,0x28(%eax,%ecx,1)
604939:	74 22                	je     0x60495d
60493b:	8d 45 08             	lea    0x8(%ebp),%eax
60493e:	89 75 f8             	mov    %esi,-0x8(%ebp)
604941:	89 45 f4             	mov    %eax,-0xc(%ebp)
604944:	8d 4d ff             	lea    -0x1(%ebp),%ecx
604947:	8d 45 f8             	lea    -0x8(%ebp),%eax
60494a:	89 75 f0             	mov    %esi,-0x10(%ebp)
60494d:	50                   	push   %eax
60494e:	8d 45 f4             	lea    -0xc(%ebp),%eax
604951:	50                   	push   %eax
604952:	8d 45 f0             	lea    -0x10(%ebp),%eax
604955:	50                   	push   %eax
604956:	e8 07 ff ff ff       	call   0x604862
60495b:	eb 1b                	jmp    0x604978
60495d:	e8 84 86 fe ff       	call   0x5ecfe6
604962:	83 20 00             	andl   $0x0,(%eax)
604965:	e8 8f 86 fe ff       	call   0x5ecff9
60496a:	c7 00 09 00 00 00    	movl   $0x9,(%eax)
604970:	e8 aa 85 fe ff       	call   0x5ecf1f
604975:	83 c8 ff             	or     $0xffffffff,%eax
604978:	5e                   	pop    %esi
604979:	c9                   	leave
60497a:	c3                   	ret
60497b:	8b ff                	mov    %edi,%edi
60497d:	55                   	push   %ebp
60497e:	8b ec                	mov    %esp,%ebp
604980:	56                   	push   %esi
604981:	57                   	push   %edi
604982:	8b 7d 08             	mov    0x8(%ebp),%edi
604985:	57                   	push   %edi
604986:	e8 ea 4b 00 00       	call   0x609575
60498b:	59                   	pop    %ecx
60498c:	83 f8 ff             	cmp    $0xffffffff,%eax
60498f:	75 04                	jne    0x604995
604991:	33 f6                	xor    %esi,%esi
604993:	eb 4e                	jmp    0x6049e3
604995:	a1 b8 10 73 00       	mov    0x7310b8,%eax
60499a:	83 ff 01             	cmp    $0x1,%edi
60499d:	75 09                	jne    0x6049a8
60499f:	f6 80 98 00 00 00 01 	testb  $0x1,0x98(%eax)
6049a6:	75 0b                	jne    0x6049b3
6049a8:	83 ff 02             	cmp    $0x2,%edi
6049ab:	75 1c                	jne    0x6049c9
6049ad:	f6 40 60 01          	testb  $0x1,0x60(%eax)
6049b1:	74 16                	je     0x6049c9
6049b3:	6a 02                	push   $0x2
6049b5:	e8 bb 4b 00 00       	call   0x609575
6049ba:	6a 01                	push   $0x1
6049bc:	8b f0                	mov    %eax,%esi
6049be:	e8 b2 4b 00 00       	call   0x609575
6049c3:	59                   	pop    %ecx
6049c4:	59                   	pop    %ecx
6049c5:	3b c6                	cmp    %esi,%eax
6049c7:	74 c8                	je     0x604991
6049c9:	57                   	push   %edi
6049ca:	e8 a6 4b 00 00       	call   0x609575
6049cf:	59                   	pop    %ecx
6049d0:	50                   	push   %eax
6049d1:	ff 15 e4 21 68 00    	call   *0x6821e4
6049d7:	85 c0                	test   %eax,%eax
6049d9:	75 b6                	jne    0x604991
6049db:	ff 15 e0 21 68 00    	call   *0x6821e0
6049e1:	8b f0                	mov    %eax,%esi
6049e3:	57                   	push   %edi
6049e4:	e8 fb 4a 00 00       	call   0x6094e4
6049e9:	59                   	pop    %ecx
6049ea:	8b cf                	mov    %edi,%ecx
6049ec:	83 e7 3f             	and    $0x3f,%edi
6049ef:	c1 f9 06             	sar    $0x6,%ecx
6049f2:	6b d7 38             	imul   $0x38,%edi,%edx
6049f5:	8b 0c 8d b8 10 73 00 	mov    0x7310b8(,%ecx,4),%ecx
6049fc:	c6 44 11 28 00       	movb   $0x0,0x28(%ecx,%edx,1)
604a01:	85 f6                	test   %esi,%esi
604a03:	74 0c                	je     0x604a11
604a05:	56                   	push   %esi
604a06:	e8 b8 85 fe ff       	call   0x5ecfc3
604a0b:	59                   	pop    %ecx
604a0c:	83 c8 ff             	or     $0xffffffff,%eax
604a0f:	eb 02                	jmp    0x604a13
604a11:	33 c0                	xor    %eax,%eax
604a13:	5f                   	pop    %edi
604a14:	5e                   	pop    %esi
604a15:	5d                   	pop    %ebp
604a16:	c3                   	ret
604a17:	6a 0c                	push   $0xc
604a19:	68 f0 1f 70 00       	push   $0x701ff0
604a1e:	e8 ed da fd ff       	call   0x5e2510
604a23:	33 ff                	xor    %edi,%edi
604a25:	8b 75 08             	mov    0x8(%ebp),%esi
604a28:	89 3e                	mov    %edi,(%esi)
604a2a:	6a 08                	push   $0x8
604a2c:	e8 50 bc ff ff       	call   0x600681
604a31:	59                   	pop    %ecx
604a32:	89 7d fc             	mov    %edi,-0x4(%ebp)
604a35:	8d 45 e4             	lea    -0x1c(%ebp),%eax
604a38:	50                   	push   %eax
604a39:	e8 7d 00 00 00       	call   0x604abb
604a3e:	59                   	pop    %ecx
604a3f:	8b 00                	mov    (%eax),%eax
604a41:	89 06                	mov    %eax,(%esi)
604a43:	85 c0                	test   %eax,%eax
604a45:	74 0f                	je     0x604a56
604a47:	89 78 08             	mov    %edi,0x8(%eax)
604a4a:	89 78 1c             	mov    %edi,0x1c(%eax)
604a4d:	89 38                	mov    %edi,(%eax)
604a4f:	89 78 04             	mov    %edi,0x4(%eax)
604a52:	83 48 10 ff          	orl    $0xffffffff,0x10(%eax)
604a56:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
604a5d:	e8 15 00 00 00       	call   0x604a77
604a62:	8b c6                	mov    %esi,%eax
604a64:	8b 4d f0             	mov    -0x10(%ebp),%ecx
604a67:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
604a6e:	59                   	pop    %ecx
604a6f:	5f                   	pop    %edi
604a70:	5e                   	pop    %esi
604a71:	5b                   	pop    %ebx
604a72:	c9                   	leave
604a73:	c3                   	ret
604a74:	8b 75 08             	mov    0x8(%ebp),%esi
604a77:	6a 08                	push   $0x8
604a79:	e8 53 bc ff ff       	call   0x6006d1
604a7e:	59                   	pop    %ecx
604a7f:	c3                   	ret
604a80:	8b ff                	mov    %edi,%edi
604a82:	55                   	push   %ebp
604a83:	8b ec                	mov    %esp,%ebp
604a85:	8b 45 08             	mov    0x8(%ebp),%eax
604a88:	33 c9                	xor    %ecx,%ecx
604a8a:	89 08                	mov    %ecx,(%eax)
604a8c:	8b 45 08             	mov    0x8(%ebp),%eax
604a8f:	89 48 04             	mov    %ecx,0x4(%eax)
604a92:	8b 45 08             	mov    0x8(%ebp),%eax
604a95:	89 48 08             	mov    %ecx,0x8(%eax)
604a98:	8b 45 08             	mov    0x8(%ebp),%eax
604a9b:	83 48 10 ff          	orl    $0xffffffff,0x10(%eax)
604a9f:	8b 45 08             	mov    0x8(%ebp),%eax
604aa2:	89 48 14             	mov    %ecx,0x14(%eax)
604aa5:	8b 45 08             	mov    0x8(%ebp),%eax
604aa8:	89 48 18             	mov    %ecx,0x18(%eax)
604aab:	8b 45 08             	mov    0x8(%ebp),%eax
604aae:	89 48 1c             	mov    %ecx,0x1c(%eax)
604ab1:	8b 45 08             	mov    0x8(%ebp),%eax
604ab4:	83 c0 0c             	add    $0xc,%eax
604ab7:	87 08                	xchg   %ecx,(%eax)
604ab9:	5d                   	pop    %ebp
604aba:	c3                   	ret
604abb:	8b ff                	mov    %edi,%edi
604abd:	55                   	push   %ebp
604abe:	8b ec                	mov    %esp,%ebp
604ac0:	51                   	push   %ecx
604ac1:	53                   	push   %ebx
604ac2:	8b 1d c8 0c 73 00    	mov    0x730cc8,%ebx
604ac8:	56                   	push   %esi
604ac9:	57                   	push   %edi
604aca:	8b 3d cc 0c 73 00    	mov    0x730ccc,%edi
604ad0:	83 c7 0c             	add    $0xc,%edi
604ad3:	83 c3 fd             	add    $0xfffffffd,%ebx
604ad6:	8d 1c 9f             	lea    (%edi,%ebx,4),%ebx
604ad9:	89 5d fc             	mov    %ebx,-0x4(%ebp)
604adc:	eb 42                	jmp    0x604b20
604ade:	8b 37                	mov    (%edi),%esi
604ae0:	85 f6                	test   %esi,%esi
604ae2:	74 52                	je     0x604b36
604ae4:	8b 46 0c             	mov    0xc(%esi),%eax
604ae7:	90                   	nop
604ae8:	c1 e8 0d             	shr    $0xd,%eax
604aeb:	a8 01                	test   $0x1,%al
604aed:	75 2e                	jne    0x604b1d
604aef:	56                   	push   %esi
604af0:	e8 ad 76 ff ff       	call   0x5fc1a2
604af5:	59                   	pop    %ecx
604af6:	8d 56 0c             	lea    0xc(%esi),%edx
604af9:	bb 00 20 00 00       	mov    $0x2000,%ebx
604afe:	8b 02                	mov    (%edx),%eax
604b00:	8b c8                	mov    %eax,%ecx
604b02:	0b cb                	or     %ebx,%ecx
604b04:	f0 0f b1 0a          	lock cmpxchg %ecx,(%edx)
604b08:	75 f6                	jne    0x604b00
604b0a:	8b 5d fc             	mov    -0x4(%ebp),%ebx
604b0d:	c1 e8 0d             	shr    $0xd,%eax
604b10:	f6 d0                	not    %al
604b12:	a8 01                	test   $0x1,%al
604b14:	75 19                	jne    0x604b2f
604b16:	56                   	push   %esi
604b17:	e8 9a 76 ff ff       	call   0x5fc1b6
604b1c:	59                   	pop    %ecx
604b1d:	83 c7 04             	add    $0x4,%edi
604b20:	3b fb                	cmp    %ebx,%edi
604b22:	75 ba                	jne    0x604ade
604b24:	8b 45 08             	mov    0x8(%ebp),%eax
604b27:	83 20 00             	andl   $0x0,(%eax)
604b2a:	5f                   	pop    %edi
604b2b:	5e                   	pop    %esi
604b2c:	5b                   	pop    %ebx
604b2d:	c9                   	leave
604b2e:	c3                   	ret
604b2f:	8b 45 08             	mov    0x8(%ebp),%eax
604b32:	89 30                	mov    %esi,(%eax)
604b34:	eb f4                	jmp    0x604b2a
604b36:	6a 38                	push   $0x38
604b38:	6a 01                	push   $0x1
604b3a:	e8 9d 0f 00 00       	call   0x605adc
604b3f:	6a 00                	push   $0x0
604b41:	89 07                	mov    %eax,(%edi)
604b43:	e8 e0 fc ff ff       	call   0x604828
604b48:	8b 07                	mov    (%edi),%eax
604b4a:	83 c4 0c             	add    $0xc,%esp
604b4d:	85 c0                	test   %eax,%eax
604b4f:	74 d3                	je     0x604b24
604b51:	83 48 10 ff          	orl    $0xffffffff,0x10(%eax)
604b55:	8b 07                	mov    (%edi),%eax
604b57:	6a 00                	push   $0x0
604b59:	68 a0 0f 00 00       	push   $0xfa0
604b5e:	83 c0 20             	add    $0x20,%eax
604b61:	50                   	push   %eax
604b62:	e8 de 2b 00 00       	call   0x607745
604b67:	8b 37                	mov    (%edi),%esi
604b69:	b9 00 20 00 00       	mov    $0x2000,%ecx
604b6e:	8d 46 0c             	lea    0xc(%esi),%eax
604b71:	f0 09 08             	lock or %ecx,(%eax)
604b74:	56                   	push   %esi
604b75:	e8 28 76 ff ff       	call   0x5fc1a2
604b7a:	59                   	pop    %ecx
604b7b:	eb b2                	jmp    0x604b2f
604b7d:	8b ff                	mov    %edi,%edi
604b7f:	55                   	push   %ebp
604b80:	8b ec                	mov    %esp,%ebp
604b82:	56                   	push   %esi
604b83:	8b 75 08             	mov    0x8(%ebp),%esi
604b86:	57                   	push   %edi
604b87:	8d 7e 0c             	lea    0xc(%esi),%edi
604b8a:	8b 07                	mov    (%edi),%eax
604b8c:	90                   	nop
604b8d:	c1 e8 0d             	shr    $0xd,%eax
604b90:	a8 01                	test   $0x1,%al
604b92:	74 25                	je     0x604bb9
604b94:	8b 07                	mov    (%edi),%eax
604b96:	90                   	nop
604b97:	c1 e8 06             	shr    $0x6,%eax
604b9a:	a8 01                	test   $0x1,%al
604b9c:	74 1b                	je     0x604bb9
604b9e:	ff 76 04             	push   0x4(%esi)
604ba1:	e8 82 fc ff ff       	call   0x604828
604ba6:	59                   	pop    %ecx
604ba7:	b8 bf fe ff ff       	mov    $0xfffffebf,%eax
604bac:	f0 21 07             	lock and %eax,(%edi)
604baf:	33 c0                	xor    %eax,%eax
604bb1:	89 46 04             	mov    %eax,0x4(%esi)
604bb4:	89 06                	mov    %eax,(%esi)
604bb6:	89 46 08             	mov    %eax,0x8(%esi)
604bb9:	5f                   	pop    %edi
604bba:	5e                   	pop    %esi
604bbb:	5d                   	pop    %ebp
604bbc:	c3                   	ret
604bbd:	8b ff                	mov    %edi,%edi
604bbf:	55                   	push   %ebp
604bc0:	8b ec                	mov    %esp,%ebp
604bc2:	83 ec 1c             	sub    $0x1c,%esp
604bc5:	8b 45 08             	mov    0x8(%ebp),%eax
604bc8:	8b d0                	mov    %eax,%edx
604bca:	53                   	push   %ebx
604bcb:	8b 5d 0c             	mov    0xc(%ebp),%ebx
604bce:	83 e0 3f             	and    $0x3f,%eax
604bd1:	56                   	push   %esi
604bd2:	c1 fa 06             	sar    $0x6,%edx
604bd5:	57                   	push   %edi
604bd6:	6b f8 38             	imul   $0x38,%eax,%edi
604bd9:	89 55 f4             	mov    %edx,-0xc(%ebp)
604bdc:	8b 04 95 b8 10 73 00 	mov    0x7310b8(,%edx,4),%eax
604be3:	8b 4c 38 18          	mov    0x18(%eax,%edi,1),%ecx
604be7:	89 4d e8             	mov    %ecx,-0x18(%ebp)
604bea:	8b 4d 10             	mov    0x10(%ebp),%ecx
604bed:	85 c9                	test   %ecx,%ecx
604bef:	74 0c                	je     0x604bfd
604bf1:	80 3b 0a             	cmpb   $0xa,(%ebx)
604bf4:	75 07                	jne    0x604bfd
604bf6:	80 4c 38 28 04       	orb    $0x4,0x28(%eax,%edi,1)
604bfb:	eb 05                	jmp    0x604c02
604bfd:	80 64 38 28 fb       	andb   $0xfb,0x28(%eax,%edi,1)
604c02:	8d 04 0b             	lea    (%ebx,%ecx,1),%eax
604c05:	89 5d f8             	mov    %ebx,-0x8(%ebp)
604c08:	89 45 f0             	mov    %eax,-0x10(%ebp)
604c0b:	8b f3                	mov    %ebx,%esi
604c0d:	3b d8                	cmp    %eax,%ebx
604c0f:	0f 83 00 01 00 00    	jae    0x604d15