59973a:	e8 21 04 00 00       	call   0x599b60
59973f:	8b 4c 24 20          	mov    0x20(%esp),%ecx
599743:	83 c4 0c             	add    $0xc,%esp
599746:	33 c0                	xor    %eax,%eax
599748:	85 c9                	test   %ecx,%ecx
59974a:	74 c9                	je     0x599715
59974c:	8b 54 24 08          	mov    0x8(%esp),%edx
599750:	66 39 34 42          	cmp    %si,(%edx,%eax,2)
599754:	74 0b                	je     0x599761
599756:	40                   	inc    %eax
599757:	3b c1                	cmp    %ecx,%eax
599759:	72 f5                	jb     0x599750
59975b:	5f                   	pop    %edi
59975c:	33 c0                	xor    %eax,%eax
59975e:	5e                   	pop    %esi
59975f:	59                   	pop    %ecx
599760:	c3                   	ret
599761:	68 06 00 02 00       	push   $0x20006
599766:	56                   	push   %esi
599767:	57                   	push   %edi
599768:	e8 13 17 00 00       	call   0x59ae80
59976d:	83 c4 0c             	add    $0xc,%esp
599770:	85 c0                	test   %eax,%eax
599772:	74 a1                	je     0x599715
599774:	83 7f 1c 00          	cmpl   $0x0,0x1c(%edi)
599778:	74 1e                	je     0x599798
59977a:	8b 87 78 05 00 00    	mov    0x578(%edi),%eax
599780:	85 c0                	test   %eax,%eax
599782:	74 14                	je     0x599798
599784:	50                   	push   %eax
599785:	ff b7 7c 05 00 00    	push   0x57c(%edi)
59978b:	56                   	push   %esi
59978c:	e8 7f 04 00 00       	call   0x599c10
599791:	83 c4 0c             	add    $0xc,%esp
599794:	5f                   	pop    %edi
599795:	5e                   	pop    %esi
599796:	59                   	pop    %ecx
599797:	c3                   	ret
599798:	5f                   	pop    %edi
599799:	b8 01 00 00 00       	mov    $0x1,%eax
59979e:	5e                   	pop    %esi
59979f:	59                   	pop    %ecx
5997a0:	c3                   	ret
5997a1:	cc                   	int3
5997a2:	cc                   	int3
5997a3:	cc                   	int3
5997a4:	cc                   	int3
5997a5:	cc                   	int3
5997a6:	cc                   	int3
5997a7:	cc                   	int3
5997a8:	cc                   	int3
5997a9:	cc                   	int3
5997aa:	cc                   	int3
5997ab:	cc                   	int3
5997ac:	cc                   	int3
5997ad:	cc                   	int3
5997ae:	cc                   	int3
5997af:	cc                   	int3
5997b0:	56                   	push   %esi
5997b1:	8b 74 24 0c          	mov    0xc(%esp),%esi
5997b5:	57                   	push   %edi
5997b6:	56                   	push   %esi
5997b7:	e8 04 69 f5 ff       	call   0x4f00c0
5997bc:	83 c4 04             	add    $0x4,%esp
5997bf:	3d 98 01 00 00       	cmp    $0x198,%eax
5997c4:	0f 85 8a 00 00 00    	jne    0x599854
5997ca:	56                   	push   %esi
5997cb:	e8 00 76 f5 ff       	call   0x4f0dd0
5997d0:	8b f0                	mov    %eax,%esi
5997d2:	56                   	push   %esi
5997d3:	e8 68 da f4 ff       	call   0x4e7240
5997d8:	56                   	push   %esi
5997d9:	8b f8                	mov    %eax,%edi
5997db:	e8 b0 80 f5 ff       	call   0x4f1890
5997e0:	8b 74 24 18          	mov    0x18(%esp),%esi
5997e4:	83 c4 0c             	add    $0xc,%esp
5997e7:	83 f8 04             	cmp    $0x4,%eax
5997ea:	75 04                	jne    0x5997f0
5997ec:	32 c9                	xor    %cl,%cl
5997ee:	eb 3f                	jmp    0x59982f
5997f0:	8b 4e 04             	mov    0x4(%esi),%ecx
5997f3:	8b 41 64             	mov    0x64(%ecx),%eax
5997f6:	f6 40 30 08          	testb  $0x8,0x30(%eax)
5997fa:	75 10                	jne    0x59980c
5997fc:	8b 01                	mov    (%ecx),%eax
5997fe:	3d 04 03 00 00       	cmp    $0x304,%eax
599803:	7c 07                	jl     0x59980c
599805:	3d 00 00 01 00       	cmp    $0x10000,%eax
59980a:	75 48                	jne    0x599854
59980c:	57                   	push   %edi
59980d:	e8 ae 68 f5 ff       	call   0x4f00c0
599812:	50                   	push   %eax
599813:	e8 b8 fd f3 ff       	call   0x4d95d0
599818:	83 c4 08             	add    $0x8,%esp
59981b:	3d 96 01 00 00       	cmp    $0x196,%eax
599820:	75 04                	jne    0x599826
599822:	b1 01                	mov    $0x1,%cl
599824:	eb 09                	jmp    0x59982f
599826:	3d 97 01 00 00       	cmp    $0x197,%eax
59982b:	75 22                	jne    0x59984f
59982d:	b1 02                	mov    $0x2,%cl
59982f:	8b 96 6c 05 00 00    	mov    0x56c(%esi),%edx
599835:	85 d2                	test   %edx,%edx
599837:	74 1b                	je     0x599854
599839:	8b b6 68 05 00 00    	mov    0x568(%esi),%esi
59983f:	33 c0                	xor    %eax,%eax
599841:	85 f6                	test   %esi,%esi
599843:	74 0a                	je     0x59984f
599845:	38 0c 02             	cmp    %cl,(%edx,%eax,1)
599848:	74 0a                	je     0x599854
59984a:	40                   	inc    %eax
59984b:	3b c6                	cmp    %esi,%eax
59984d:	72 f6                	jb     0x599845
59984f:	5f                   	pop    %edi
599850:	33 c0                	xor    %eax,%eax
599852:	5e                   	pop    %esi
599853:	c3                   	ret
599854:	5f                   	pop    %edi
599855:	b8 01 00 00 00       	mov    $0x1,%eax
59985a:	5e                   	pop    %esi
59985b:	c3                   	ret
59985c:	cc                   	int3
59985d:	cc                   	int3
59985e:	cc                   	int3
59985f:	cc                   	int3
599860:	53                   	push   %ebx
599861:	55                   	push   %ebp
599862:	56                   	push   %esi
599863:	8b 74 24 18          	mov    0x18(%esp),%esi
599867:	33 ed                	xor    %ebp,%ebp
599869:	57                   	push   %edi
59986a:	83 fe ff             	cmp    $0xffffffff,%esi
59986d:	0f 84 ba 00 00 00    	je     0x59992d
599873:	ff 74 24 18          	push   0x18(%esp)
599877:	e8 84 d9 fb ff       	call   0x557200
59987c:	83 c4 04             	add    $0x4,%esp
59987f:	8b d0                	mov    %eax,%edx
599881:	89 54 24 1c          	mov    %edx,0x1c(%esp)
599885:	85 f6                	test   %esi,%esi
599887:	74 0c                	je     0x599895
599889:	5f                   	pop    %edi
59988a:	33 c0                	xor    %eax,%eax
59988c:	3b d6                	cmp    %esi,%edx
59988e:	5e                   	pop    %esi
59988f:	5d                   	pop    %ebp
599890:	0f 94 c0             	sete   %al
599893:	5b                   	pop    %ebx
599894:	c3                   	ret
599895:	8b 7c 24 14          	mov    0x14(%esp),%edi
599899:	8b 4f 04             	mov    0x4(%edi),%ecx
59989c:	8b 41 64             	mov    0x64(%ecx),%eax
59989f:	f6 40 30 08          	testb  $0x8,0x30(%eax)
5998a3:	75 28                	jne    0x5998cd
5998a5:	8b 01                	mov    (%ecx),%eax
5998a7:	3d 04 03 00 00       	cmp    $0x304,%eax
5998ac:	7c 1f                	jl     0x5998cd
5998ae:	3d 00 00 01 00       	cmp    $0x10000,%eax
5998b3:	74 18                	je     0x5998cd
5998b5:	8b 47 7c             	mov    0x7c(%edi),%eax
5998b8:	39 a8 6c 02 00 00    	cmp    %ebp,0x26c(%eax)
5998be:	74 0d                	je     0x5998cd
5998c0:	8b 98 74 02 00 00    	mov    0x274(%eax),%ebx
5998c6:	bd 01 00 00 00       	mov    $0x1,%ebp
5998cb:	eb 06                	jmp    0x5998d3
5998cd:	8b 9f 8c 0f 00 00    	mov    0xf8c(%edi),%ebx
5998d3:	33 f6                	xor    %esi,%esi
5998d5:	85 db                	test   %ebx,%ebx
5998d7:	74 4d                	je     0x599926
5998d9:	0f 1f 80 00 00 00 00 	nopl   0x0(%eax)
5998e0:	85 ed                	test   %ebp,%ebp
5998e2:	74 2b                	je     0x59990f
5998e4:	8b 4f 7c             	mov    0x7c(%edi),%ecx
5998e7:	33 d2                	xor    %edx,%edx
5998e9:	b8 b8 76 66 00       	mov    $0x6676b8,%eax
5998ee:	8b 89 6c 02 00 00    	mov    0x26c(%ecx),%ecx
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