599a7c:	5b                   	pop    %ebx
599a7d:	c3                   	ret
599a7e:	83 fe 04             	cmp    $0x4,%esi
599a81:	75 45                	jne    0x599ac8
599a83:	83 f9 20             	cmp    $0x20,%ecx
599a86:	74 49                	je     0x599ad1
599a88:	8b 83 04 04 00 00    	mov    0x404(%ebx),%eax
599a8e:	8d 4e 02             	lea    0x2(%esi),%ecx
599a91:	05 90 00 00 00       	add    $0x90,%eax
599a96:	83 38 00             	cmpl   $0x0,(%eax)
599a99:	75 0b                	jne    0x599aa6
599a9b:	49                   	dec    %ecx
599a9c:	83 e8 14             	sub    $0x14,%eax
599a9f:	83 f9 04             	cmp    $0x4,%ecx
599aa2:	7d f2                	jge    0x599a96
599aa4:	eb 2b                	jmp    0x599ad1
599aa6:	8b f1                	mov    %ecx,%esi
599aa8:	eb 1e                	jmp    0x599ac8
599aaa:	8b 83 04 04 00 00    	mov    0x404(%ebx),%eax
599ab0:	8b 08                	mov    (%eax),%ecx
599ab2:	2b c8                	sub    %eax,%ecx
599ab4:	b8 67 66 66 66       	mov    $0x66666667,%eax
599ab9:	83 e9 14             	sub    $0x14,%ecx
599abc:	f7 e9                	imul   %ecx
599abe:	c1 fa 03             	sar    $0x3,%edx
599ac1:	8b f2                	mov    %edx,%esi
599ac3:	c1 ee 1f             	shr    $0x1f,%esi
599ac6:	03 f2                	add    %edx,%esi
599ac8:	85 f6                	test   %esi,%esi
599aca:	78 ac                	js     0x599a78
599acc:	83 fe 09             	cmp    $0x9,%esi
599acf:	7d a7                	jge    0x599a78
599ad1:	8b 43 04             	mov    0x4(%ebx),%eax
599ad4:	8b 40 64             	mov    0x64(%eax),%eax
599ad7:	f6 40 30 02          	testb  $0x2,0x30(%eax)
599adb:	75 24                	jne    0x599b01
599add:	85 f6                	test   %esi,%esi
599adf:	75 20                	jne    0x599b01
599ae1:	68 98 79 66 00       	push   $0x667998
599ae6:	68 0b 00 05 00       	push   $0x5000b
599aeb:	53                   	push   %ebx
599aec:	e8 af f0 ff ff       	call   0x598ba0
599af1:	83 c4 0c             	add    $0xc,%esp
599af4:	85 c0                	test   %eax,%eax
599af6:	74 80                	je     0x599a78
599af8:	5f                   	pop    %edi
599af9:	5e                   	pop    %esi
599afa:	b8 98 79 66 00       	mov    $0x667998,%eax
599aff:	5b                   	pop    %ebx
599b00:	c3                   	ret
599b01:	0f b7 0c 75 b8 79 66 	movzwl 0x6679b8(,%esi,2),%ecx
599b08:	00
599b09:	33 c0                	xor    %eax,%eax
599b0b:	bf b8 76 66 00       	mov    $0x6676b8,%edi
599b10:	66 39 4f 04          	cmp    %cx,0x4(%edi)
599b14:	74 0f                	je     0x599b25
599b16:	40                   	inc    %eax
599b17:	83 c7 20             	add    $0x20,%edi
599b1a:	83 f8 17             	cmp    $0x17,%eax
599b1d:	72 f1                	jb     0x599b10
599b1f:	5f                   	pop    %edi
599b20:	5e                   	pop    %esi
599b21:	33 c0                	xor    %eax,%eax
599b23:	5b                   	pop    %ebx
599b24:	c3                   	ret
599b25:	83 7f 08 00          	cmpl   $0x0,0x8(%edi)
599b29:	74 13                	je     0x599b3e
599b2b:	ff 77 0c             	push   0xc(%edi)
599b2e:	e8 2d eb fe ff       	call   0x588660
599b33:	83 c4 04             	add    $0x4,%esp
599b36:	85 c0                	test   %eax,%eax
599b38:	0f 84 3a ff ff ff    	je     0x599a78
599b3e:	57                   	push   %edi
599b3f:	68 0b 00 05 00       	push   $0x5000b
599b44:	53                   	push   %ebx
599b45:	e8 56 f0 ff ff       	call   0x598ba0
599b4a:	83 c4 0c             	add    $0xc,%esp
599b4d:	85 c0                	test   %eax,%eax
599b4f:	0f 84 23 ff ff ff    	je     0x599a78
599b55:	8b c7                	mov    %edi,%eax
599b57:	5f                   	pop    %edi
599b58:	5e                   	pop    %esi
599b59:	5b                   	pop    %ebx
599b5a:	c3                   	ret
599b5b:	cc                   	int3
599b5c:	cc                   	int3
599b5d:	cc                   	int3
599b5e:	cc                   	int3
599b5f:	cc                   	int3
599b60:	8b 4c 24 04          	mov    0x4(%esp),%ecx
599b64:	8b 81 04 04 00 00    	mov    0x404(%ecx),%eax
599b6a:	8b 40 10             	mov    0x10(%eax),%eax
599b6d:	25 00 00 03 00       	and    $0x30000,%eax
599b72:	3d 00 00 01 00       	cmp    $0x10000,%eax
599b77:	74 62                	je     0x599bdb
599b79:	3d 00 00 02 00       	cmp    $0x20000,%eax
599b7e:	74 46                	je     0x599bc6
599b80:	3d 00 00 03 00       	cmp    $0x30000,%eax
599b85:	8b 44 24 08          	mov    0x8(%esp),%eax
599b89:	74 2a                	je     0x599bb5
599b8b:	8b 91 74 05 00 00    	mov    0x574(%ecx),%edx
599b91:	85 d2                	test   %edx,%edx
599b93:	75 11                	jne    0x599ba6
599b95:	c7 00 74 76 66 00    	movl   $0x667674,(%eax)
599b9b:	8b 44 24 0c          	mov    0xc(%esp),%eax
599b9f:	c7 00 05 00 00 00    	movl   $0x5,(%eax)
599ba5:	c3                   	ret
599ba6:	89 10                	mov    %edx,(%eax)
599ba8:	8b 44 24 0c          	mov    0xc(%esp),%eax
599bac:	8b 89 70 05 00 00    	mov    0x570(%ecx),%ecx
599bb2:	89 08                	mov    %ecx,(%eax)
599bb4:	c3                   	ret
599bb5:	c7 00 80 76 66 00    	movl   $0x667680,(%eax)
599bbb:	8b 44 24 0c          	mov    0xc(%esp),%eax
599bbf:	c7 00 02 00 00 00    	movl   $0x2,(%eax)
599bc5:	c3                   	ret
599bc6:	8b 44 24 08          	mov    0x8(%esp),%eax
599bca:	c7 00 82 76 66 00    	movl   $0x667682,(%eax)
599bd0:	8b 44 24 0c          	mov    0xc(%esp),%eax
599bd4:	c7 00 01 00 00 00    	movl   $0x1,(%eax)
599bda:	c3                   	ret
599bdb:	8b 44 24 08          	mov    0x8(%esp),%eax
599bdf:	c7 00 80 76 66 00    	movl   $0x667680,(%eax)
599be5:	8b 44 24 0c          	mov    0xc(%esp),%eax
599be9:	c7 00 01 00 00 00    	movl   $0x1,(%eax)
599bef:	c3                   	ret
599bf0:	8b 4c 24 04          	mov    0x4(%esp),%ecx
599bf4:	8d 41 ff             	lea    -0x1(%ecx),%eax
599bf7:	66 83 f8 1d          	cmp    $0x1d,%ax
599bfb:	77 0e                	ja     0x599c0b
599bfd:	0f b7 c1             	movzwl %cx,%eax
599c00:	8d 04 40             	lea    (%eax,%eax,2),%eax
599c03:	8d 04 85 fc 74 66 00 	lea    0x6674fc(,%eax,4),%eax
599c0a:	c3                   	ret
599c0b:	33 c0                	xor    %eax,%eax
599c0d:	c3                   	ret
599c0e:	cc                   	int3
599c0f:	cc                   	int3
599c10:	8b 4c 24 0c          	mov    0xc(%esp),%ecx
599c14:	33 c0                	xor    %eax,%eax
599c16:	56                   	push   %esi
599c17:	85 c9                	test   %ecx,%ecx
599c19:	74 14                	je     0x599c2f
599c1b:	8b 54 24 0c          	mov    0xc(%esp),%edx
599c1f:	66 8b 74 24 08       	mov    0x8(%esp),%si
599c24:	66 39 34 42          	cmp    %si,(%edx,%eax,2)
599c28:	74 09                	je     0x599c33
599c2a:	40                   	inc    %eax
599c2b:	3b c1                	cmp    %ecx,%eax
599c2d:	72 f5                	jb     0x599c24
599c2f:	33 c0                	xor    %eax,%eax
599c31:	5e                   	pop    %esi
599c32:	c3                   	ret
599c33:	b8 01 00 00 00       	mov    $0x1,%eax
599c38:	5e                   	pop    %esi
599c39:	c3                   	ret
599c3a:	cc                   	int3
599c3b:	cc                   	int3
599c3c:	cc                   	int3
599c3d:	cc                   	int3
599c3e:	cc                   	int3
599c3f:	cc                   	int3
599c40:	8b 44 24 04          	mov    0x4(%esp),%eax
599c44:	85 c0                	test   %eax,%eax
599c46:	74 29                	je     0x599c71
599c48:	83 78 08 00          	cmpl   $0x0,0x8(%eax)
599c4c:	75 04                	jne    0x599c52
599c4e:	33 c0                	xor    %eax,%eax
599c50:	eb 0f                	jmp    0x599c61
599c52:	ff 70 0c             	push   0xc(%eax)
599c55:	e8 06 ea fe ff       	call   0x588660
599c5a:	83 c4 04             	add    $0x4,%esp
599c5d:	85 c0                	test   %eax,%eax
599c5f:	74 10                	je     0x599c71
599c61:	8b 4c 24 08          	mov    0x8(%esp),%ecx
599c65:	85 c9                	test   %ecx,%ecx
599c67:	74 02                	je     0x599c6b
599c69:	89 01                	mov    %eax,(%ecx)
599c6b:	b8 01 00 00 00       	mov    $0x1,%eax
599c70:	c3                   	ret
599c71:	33 c0                	xor    %eax,%eax
599c73:	c3                   	ret
599c74:	cc                   	int3
599c75:	cc                   	int3
599c76:	cc                   	int3
599c77:	cc                   	int3
599c78:	cc                   	int3
599c79:	cc                   	int3
599c7a:	cc                   	int3
599c7b:	cc                   	int3
599c7c:	cc                   	int3
599c7d:	cc                   	int3
599c7e:	cc                   	int3
599c7f:	cc                   	int3
599c80:	56                   	push   %esi
599c81:	8b 74 24 08          	mov    0x8(%esp),%esi
599c85:	56                   	push   %esi
599c86:	e8 55 38 ff ff       	call   0x58d4e0
599c8b:	83 c4 04             	add    $0x4,%esp
599c8e:	85 c0                	test   %eax,%eax
599c90:	74 17                	je     0x599ca9
599c92:	8b 46 04             	mov    0x4(%esi),%eax
599c95:	56                   	push   %esi
599c96:	8b 40 10             	mov    0x10(%eax),%eax
599c99:	ff d0                	call   *%eax
599c9b:	83 c4 04             	add    $0x4,%esp
599c9e:	85 c0                	test   %eax,%eax
599ca0:	74 07                	je     0x599ca9
599ca2:	b8 01 00 00 00       	mov    $0x1,%eax
599ca7:	5e                   	pop    %esi
599ca8:	c3                   	ret
599ca9:	33 c0                	xor    %eax,%eax
599cab:	5e                   	pop    %esi
599cac:	c3                   	ret
599cad:	cc                   	int3
599cae:	cc                   	int3
599caf:	cc                   	int3
599cb0:	b8 08 00 00 00       	mov    $0x8,%eax
599cb5:	e8 f6 7a 03 00       	call   0x5d17b0
599cba:	53                   	push   %ebx
599cbb:	55                   	push   %ebp
599cbc:	56                   	push   %esi
599cbd:	57                   	push   %edi
599cbe:	8b 7c 24 1c          	mov    0x1c(%esp),%edi
599cc2:	68 df 06 00 00       	push   $0x6df
599cc7:	68 30 7b 66 00       	push   $0x667b30
599ccc:	8b 9f 04 04 00 00    	mov    0x404(%edi),%ebx
599cd2:	8b 6f 7c             	mov    0x7c(%edi),%ebp
599cd5:	ff b7 88 0f 00 00    	push   0xf88(%edi)
599cdb:	81 c5 7c 02 00 00    	add    $0x27c,%ebp
599ce1:	8b 43 10             	mov    0x10(%ebx),%eax
599ce4:	25 00 00 03 00       	and    $0x30000,%eax
599ce9:	89 44 24 28          	mov    %eax,0x28(%esp)
599ced:	e8 8e 6a f4 ff       	call   0x4e0780
599cf2:	8b 44 24 28          	mov    0x28(%esp),%eax
599cf6:	83 c4 0c             	add    $0xc,%esp
599cf9:	83 7f 1c 00          	cmpl   $0x0,0x1c(%edi)
599cfd:	c7 87 88 0f 00 00 00 	movl   $0x0,0xf88(%edi)
599d04:	00 00 00
599d07:	c7 87 8c 0f 00 00 00 	movl   $0x0,0xf8c(%edi)
599d0e:	00 00 00
599d11:	75 16                	jne    0x599d29
599d13:	8b b3 d8 00 00 00    	mov    0xd8(%ebx),%esi
599d19:	85 f6                	test   %esi,%esi
599d1b:	74 0c                	je     0x599d29
599d1d:	85 c0                	test   %eax,%eax
599d1f:	75 08                	jne    0x599d29
599d21:	8b 8b dc 00 00 00    	mov    0xdc(%ebx),%ecx
599d27:	eb 30                	jmp    0x599d59
599d29:	8b b3 d0 00 00 00    	mov    0xd0(%ebx),%esi
599d2f:	85 f6                	test   %esi,%esi
599d31:	74 0c                	je     0x599d3f
599d33:	85 c0                	test   %eax,%eax
599d35:	75 08                	jne    0x599d3f
599d37:	8b 8b d4 00 00 00    	mov    0xd4(%ebx),%ecx
599d3d:	eb 1a                	jmp    0x599d59
599d3f:	8d 44 24 14          	lea    0x14(%esp),%eax
599d43:	50                   	push   %eax
599d44:	6a 00                	push   $0x0
599d46:	57                   	push   %edi
599d47:	e8 04 ed ff ff       	call   0x598a50
599d4c:	8b 74 24 20          	mov    0x20(%esp),%esi
599d50:	8b c8                	mov    %eax,%ecx
599d52:	8b 44 24 28          	mov    0x28(%esp),%eax
599d56:	83 c4 0c             	add    $0xc,%esp
599d59:	f7 87 ec 04 00 00 00 	testl  $0x400000,0x4ec(%edi)
599d60:	00 40 00
599d63:	89 4c 24 10          	mov    %ecx,0x10(%esp)
599d67:	75 19                	jne    0x599d82
599d69:	85 c0                	test   %eax,%eax
599d6b:	75 15                	jne    0x599d82
599d6d:	8b 47 7c             	mov    0x7c(%edi),%eax
599d70:	8b 90 68 02 00 00    	mov    0x268(%eax),%edx
599d76:	8b 98 70 02 00 00    	mov    0x270(%eax),%ebx
599d7c:	89 54 24 14          	mov    %edx,0x14(%esp)
599d80:	eb 1b                	jmp    0x599d9d
599d82:	8b 47 7c             	mov    0x7c(%edi),%eax
599d85:	8b d9                	mov    %ecx,%ebx
599d87:	8b d6                	mov    %esi,%edx
599d89:	89 74 24 14          	mov    %esi,0x14(%esp)
599d8d:	8b 88 70 02 00 00    	mov    0x270(%eax),%ecx
599d93:	8b b0 68 02 00 00    	mov    0x268(%eax),%esi
599d99:	89 4c 24 10          	mov    %ecx,0x10(%esp)
599d9d:	51                   	push   %ecx
599d9e:	56                   	push   %esi
599d9f:	53                   	push   %ebx
599da0:	52                   	push   %edx
599da1:	6a 00                	push   $0x0
599da3:	57                   	push   %edi
599da4:	89 5c 24 34          	mov    %ebx,0x34(%esp)
599da8:	e8 53 ed ff ff       	call   0x598b00
599dad:	83 c4 18             	add    $0x18,%esp
599db0:	85 c0                	test   %eax,%eax
599db2:	74 5a                	je     0x599e0e
599db4:	68 f8 06 00 00       	push   $0x6f8
599db9:	c1 e0 02             	shl    $0x2,%eax
599dbc:	68 30 7b 66 00       	push   $0x667b30
599dc1:	50                   	push   %eax
599dc2:	e8 89 69 f4 ff       	call   0x4e0750
599dc7:	8b d8                	mov    %eax,%ebx
599dc9:	83 c4 0c             	add    $0xc,%esp
599dcc:	85 db                	test   %ebx,%ebx
599dce:	75 25                	jne    0x599df5
599dd0:	68 f9 06 00 00       	push   $0x6f9
599dd5:	68 30 7b 66 00       	push   $0x667b30
599dda:	6a 41                	push   $0x41
599ddc:	68 77 02 00 00       	push   $0x277
599de1:	6a 14                	push   $0x14
599de3:	e8 98 f1 f3 ff       	call   0x4d8f80
599de8:	83 c4 14             	add    $0x14,%esp
599deb:	33 c0                	xor    %eax,%eax
599ded:	5f                   	pop    %edi
599dee:	5e                   	pop    %esi
599def:	5d                   	pop    %ebp
599df0:	5b                   	pop    %ebx
599df1:	83 c4 08             	add    $0x8,%esp
599df4:	c3                   	ret
599df5:	ff 74 24 10          	push   0x10(%esp)
599df9:	56                   	push   %esi
599dfa:	ff 74 24 24          	push   0x24(%esp)
599dfe:	ff 74 24 20          	push   0x20(%esp)
599e02:	53                   	push   %ebx
599e03:	57                   	push   %edi
599e04:	e8 f7 ec ff ff       	call   0x598b00
599e09:	83 c4 18             	add    $0x18,%esp
599e0c:	eb 02                	jmp    0x599e10
599e0e:	33 db                	xor    %ebx,%ebx
599e10:	89 87 8c 0f 00 00    	mov    %eax,0xf8c(%edi)
599e16:	33 f6                	xor    %esi,%esi
599e18:	89 9f 88 0f 00 00    	mov    %ebx,0xf88(%edi)
599e1e:	c7 45 00 00 00 00 00 	movl   $0x0,0x0(%ebp)
599e25:	c7 45 04 00 00 00 00 	movl   $0x0,0x4(%ebp)
599e2c:	c7 45 08 00 00 00 00 	movl   $0x0,0x8(%ebp)
599e33:	c7 45 0c 00 00 00 00 	movl   $0x0,0xc(%ebp)
599e3a:	c7 45 10 00 00 00 00 	movl   $0x0,0x10(%ebp)
599e41:	c7 45 14 00 00 00 00 	movl   $0x0,0x14(%ebp)
599e48:	c7 45 18 00 00 00 00 	movl   $0x0,0x18(%ebp)
599e4f:	c7 45 1c 00 00 00 00 	movl   $0x0,0x1c(%ebp)
599e56:	c7 45 20 00 00 00 00 	movl   $0x0,0x20(%ebp)
599e5d:	39 b7 8c 0f 00 00    	cmp    %esi,0xf8c(%edi)
599e63:	76 5e                	jbe    0x599ec3
599e65:	66 66 66 0f 1f 84 00 	data16 data16 nopw 0x0(%eax,%eax,1)
599e6c:	00 00 00 00
599e70:	8b 87 88 0f 00 00    	mov    0xf88(%edi),%eax
599e76:	8b 4f 04             	mov    0x4(%edi),%ecx
599e79:	8b 1c b0             	mov    (%eax,%esi,4),%ebx
599e7c:	8b 41 64             	mov    0x64(%ecx),%eax
599e7f:	f6 40 30 08          	testb  $0x8,0x30(%eax)
599e83:	75 16                	jne    0x599e9b
599e85:	8b 01                	mov    (%ecx),%eax