5998f4:	0f b7 0c 71          	movzwl (%ecx,%esi,2),%ecx
5998f8:	66 39 48 04          	cmp    %cx,0x4(%eax)
5998fc:	74 0b                	je     0x599909
5998fe:	42                   	inc    %edx
5998ff:	83 c0 20             	add    $0x20,%eax
599902:	83 fa 17             	cmp    $0x17,%edx
599905:	72 f1                	jb     0x5998f8
599907:	33 c0                	xor    %eax,%eax
599909:	8b 54 24 1c          	mov    0x1c(%esp),%edx
59990d:	eb 09                	jmp    0x599918
59990f:	8b 87 88 0f 00 00    	mov    0xf88(%edi),%eax
599915:	8b 04 b0             	mov    (%eax,%esi,4),%eax
599918:	85 c0                	test   %eax,%eax
59991a:	74 05                	je     0x599921
59991c:	3b 50 18             	cmp    0x18(%eax),%edx
59991f:	74 0c                	je     0x59992d
599921:	46                   	inc    %esi
599922:	3b f3                	cmp    %ebx,%esi
599924:	72 ba                	jb     0x5998e0
599926:	5f                   	pop    %edi
599927:	5e                   	pop    %esi
599928:	5d                   	pop    %ebp
599929:	33 c0                	xor    %eax,%eax
59992b:	5b                   	pop    %ebx
59992c:	c3                   	ret
59992d:	5f                   	pop    %edi
59992e:	5e                   	pop    %esi
59992f:	5d                   	pop    %ebp
599930:	b8 01 00 00 00       	mov    $0x1,%eax
599935:	5b                   	pop    %ebx
599936:	c3                   	ret
599937:	cc                   	int3
599938:	cc                   	int3
599939:	cc                   	int3
59993a:	cc                   	int3
59993b:	cc                   	int3
59993c:	cc                   	int3
59993d:	cc                   	int3
59993e:	cc                   	int3
59993f:	cc                   	int3
599940:	56                   	push   %esi
599941:	8b 74 24 08          	mov    0x8(%esp),%esi
599945:	56                   	push   %esi
599946:	e8 b5 24 ff ff       	call   0x58be00
59994b:	83 c4 04             	add    $0x4,%esp
59994e:	85 c0                	test   %eax,%eax
599950:	75 02                	jne    0x599954
599952:	5e                   	pop    %esi
599953:	c3                   	ret
599954:	8b 46 04             	mov    0x4(%esi),%eax
599957:	b9 04 03 00 00       	mov    $0x304,%ecx
59995c:	8b 00                	mov    (%eax),%eax
59995e:	3d 00 00 01 00       	cmp    $0x10000,%eax
599963:	0f 44 c1             	cmove  %ecx,%eax
599966:	89 06                	mov    %eax,(%esi)
599968:	b8 01 00 00 00       	mov    $0x1,%eax
59996d:	5e                   	pop    %esi
59996e:	c3                   	ret
59996f:	cc                   	int3
599970:	b8 20 1c 00 00       	mov    $0x1c20,%eax
599975:	c3                   	ret
599976:	cc                   	int3
599977:	cc                   	int3
599978:	cc                   	int3
599979:	cc                   	int3
59997a:	cc                   	int3
59997b:	cc                   	int3
59997c:	cc                   	int3
59997d:	cc                   	int3
59997e:	cc                   	int3
59997f:	cc                   	int3
599980:	56                   	push   %esi
599981:	8b 74 24 08          	mov    0x8(%esp),%esi
599985:	6a 75                	push   $0x75
599987:	68 30 7b 66 00       	push   $0x667b30
59998c:	ff b6 80 05 00 00    	push   0x580(%esi)
599992:	e8 e9 6d f4 ff       	call   0x4e0780
599997:	56                   	push   %esi
599998:	e8 33 37 ff ff       	call   0x58d0d0
59999d:	83 c4 10             	add    $0x10,%esp
5999a0:	5e                   	pop    %esi
5999a1:	c3                   	ret
5999a2:	cc                   	int3
5999a3:	cc                   	int3
5999a4:	cc                   	int3
5999a5:	cc                   	int3
5999a6:	cc                   	int3
5999a7:	cc                   	int3
5999a8:	cc                   	int3
5999a9:	cc                   	int3
5999aa:	cc                   	int3
5999ab:	cc                   	int3
5999ac:	cc                   	int3
5999ad:	cc                   	int3
5999ae:	cc                   	int3
5999af:	cc                   	int3
5999b0:	8b 4c 24 04          	mov    0x4(%esp),%ecx
5999b4:	8b 44 24 08          	mov    0x8(%esp),%eax
5999b8:	8b 91 64 05 00 00    	mov    0x564(%ecx),%edx
5999be:	85 d2                	test   %edx,%edx
5999c0:	74 0f                	je     0x5999d1
5999c2:	89 10                	mov    %edx,(%eax)
5999c4:	8b 44 24 0c          	mov    0xc(%esp),%eax
5999c8:	8b 89 60 05 00 00    	mov    0x560(%ecx),%ecx
5999ce:	89 08                	mov    %ecx,(%eax)
5999d0:	c3                   	ret
5999d1:	c7 00 70 76 66 00    	movl   $0x667670,(%eax)
5999d7:	8b 81 04 04 00 00    	mov    0x404(%ecx),%eax
5999dd:	8b 48 10             	mov    0x10(%eax),%ecx
5999e0:	8b 44 24 0c          	mov    0xc(%esp),%eax
5999e4:	81 e1 00 00 03 00    	and    $0x30000,%ecx
5999ea:	f7 d9                	neg    %ecx
5999ec:	1b c9                	sbb    %ecx,%ecx
5999ee:	83 c1 03             	add    $0x3,%ecx
5999f1:	89 08                	mov    %ecx,(%eax)
5999f3:	c3                   	ret
5999f4:	cc                   	int3
5999f5:	cc                   	int3
5999f6:	cc                   	int3
5999f7:	cc                   	int3
5999f8:	cc                   	int3
5999f9:	cc                   	int3
5999fa:	cc                   	int3
5999fb:	cc                   	int3
5999fc:	cc                   	int3
5999fd:	cc                   	int3
5999fe:	cc                   	int3
5999ff:	cc                   	int3
599a00:	ff 74 24 04          	push   0x4(%esp)
599a04:	e8 c7 73 f5 ff       	call   0x4f0dd0
599a09:	83 c4 04             	add    $0x4,%esp
599a0c:	85 c0                	test   %eax,%eax
599a0e:	74 29                	je     0x599a39
599a10:	50                   	push   %eax
599a11:	e8 2a d8 f4 ff       	call   0x4e7240
599a16:	50                   	push   %eax
599a17:	e8 94 68 f5 ff       	call   0x4f02b0
599a1c:	8b d0                	mov    %eax,%edx
599a1e:	83 c4 08             	add    $0x8,%esp
599a21:	33 c0                	xor    %eax,%eax
599a23:	33 c9                	xor    %ecx,%ecx
599a25:	40                   	inc    %eax
599a26:	39 91 08 75 66 00    	cmp    %edx,0x667508(%ecx)
599a2c:	74 0e                	je     0x599a3c
599a2e:	83 c1 0c             	add    $0xc,%ecx
599a31:	81 f9 68 01 00 00    	cmp    $0x168,%ecx
599a37:	72 ec                	jb     0x599a25
599a39:	33 c0                	xor    %eax,%eax
599a3b:	c3                   	ret
599a3c:	0f b7 c0             	movzwl %ax,%eax
599a3f:	c3                   	ret
599a40:	53                   	push   %ebx
599a41:	8b 5c 24 08          	mov    0x8(%esp),%ebx
599a45:	56                   	push   %esi
599a46:	8b 74 24 10          	mov    0x10(%esp),%esi
599a4a:	57                   	push   %edi
599a4b:	83 fe ff             	cmp    $0xffffffff,%esi
599a4e:	75 78                	jne    0x599ac8
599a50:	83 7b 1c 00          	cmpl   $0x0,0x1c(%ebx)
599a54:	74 54                	je     0x599aaa
599a56:	33 f6                	xor    %esi,%esi
599a58:	56                   	push   %esi
599a59:	e8 32 18 ff ff       	call   0x58b290
599a5e:	8b 4b 7c             	mov    0x7c(%ebx),%ecx
599a61:	83 c4 04             	add    $0x4,%esp
599a64:	8b 89 10 02 00 00    	mov    0x210(%ecx),%ecx
599a6a:	8b 49 14             	mov    0x14(%ecx),%ecx
599a6d:	85 48 04             	test   %ecx,0x4(%eax)
599a70:	75 0c                	jne    0x599a7e
599a72:	46                   	inc    %esi
599a73:	83 fe 09             	cmp    $0x9,%esi
599a76:	72 e0                	jb     0x599a58
599a78:	5f                   	pop    %edi
599a79:	5e                   	pop    %esi
599a7a:	33 c0                	xor    %eax,%eax
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