594693:	83 c4 08             	add    $0x8,%esp
594696:	c3                   	ret
594697:	bd 90 71 66 00       	mov    $0x667190,%ebp
59469c:	eb 05                	jmp    0x5946a3
59469e:	bd 48 71 66 00       	mov    $0x667148,%ebp
5946a3:	8b 44 24 18          	mov    0x18(%esp),%eax
5946a7:	33 c9                	xor    %ecx,%ecx
5946a9:	8b 54 24 20          	mov    0x20(%esp),%edx
5946ad:	89 4c 24 0c          	mov    %ecx,0xc(%esp)
5946b1:	c7 44 24 08 01 00 00 	movl   $0x1,0x8(%esp)
5946b8:	00
5946b9:	89 08                	mov    %ecx,(%eax)
5946bb:	85 d2                	test   %edx,%edx
5946bd:	74 02                	je     0x5946c1
5946bf:	89 0a                	mov    %ecx,(%edx)
5946c1:	57                   	push   %edi
5946c2:	33 ff                	xor    %edi,%edi
5946c4:	89 7c 24 18          	mov    %edi,0x18(%esp)
5946c8:	39 4d 00             	cmp    %ecx,0x0(%ebp)
5946cb:	0f 84 21 01 00 00    	je     0x5947f2
5946d1:	53                   	push   %ebx
5946d2:	8b 45 04             	mov    0x4(%ebp),%eax
5946d5:	85 c0                	test   %eax,%eax
5946d7:	75 0b                	jne    0x5946e4
5946d9:	33 ff                	xor    %edi,%edi
5946db:	89 7c 24 1c          	mov    %edi,0x1c(%esp)
5946df:	e9 f4 00 00 00       	jmp    0x5947d8
5946e4:	ff d0                	call   *%eax
5946e6:	83 7c 24 10 01       	cmpl   $0x1,0x10(%esp)
5946eb:	8b d8                	mov    %eax,%ebx
5946ed:	75 0b                	jne    0x5946fa
5946ef:	85 ff                	test   %edi,%edi
5946f1:	75 07                	jne    0x5946fa
5946f3:	8b 45 00             	mov    0x0(%ebp),%eax
5946f6:	89 44 24 1c          	mov    %eax,0x1c(%esp)
5946fa:	8b 96 f4 04 00 00    	mov    0x4f4(%esi),%edx
594700:	8b 3b                	mov    (%ebx),%edi
594702:	85 d2                	test   %edx,%edx
594704:	74 48                	je     0x59474e
594706:	3b fa                	cmp    %edx,%edi
594708:	74 44                	je     0x59474e
59470a:	8b 46 04             	mov    0x4(%esi),%eax
59470d:	8b 40 64             	mov    0x64(%eax),%eax
594710:	f6 40 30 08          	testb  $0x8,0x30(%eax)
594714:	75 09                	jne    0x59471f
594716:	33 c9                	xor    %ecx,%ecx
594718:	3b fa                	cmp    %edx,%edi
59471a:	0f 9d c1             	setge  %cl
59471d:	eb 20                	jmp    0x59473f
59471f:	81 fa 00 01 00 00    	cmp    $0x100,%edx
594725:	b9 00 ff 00 00       	mov    $0xff00,%ecx
59472a:	8b c7                	mov    %edi,%eax
59472c:	0f 44 d1             	cmove  %ecx,%edx
59472f:	81 ff 00 01 00 00    	cmp    $0x100,%edi
594735:	0f 44 c1             	cmove  %ecx,%eax
594738:	33 c9                	xor    %ecx,%ecx
59473a:	3b c2                	cmp    %edx,%eax
59473c:	0f 9e c1             	setle  %cl
59473f:	8d 0c 4d ff ff ff ff 	lea    -0x1(,%ecx,2),%ecx
594746:	85 c9                	test   %ecx,%ecx
594748:	0f 88 86 00 00 00    	js     0x5947d4
59474e:	6a 00                	push   $0x0
594750:	57                   	push   %edi
594751:	6a 00                	push   $0x0
594753:	6a 09                	push   $0x9
594755:	56                   	push   %esi
594756:	e8 25 6e ff ff       	call   0x58b580
59475b:	83 c4 14             	add    $0x14,%esp
59475e:	85 c0                	test   %eax,%eax
594760:	74 72                	je     0x5947d4
594762:	8b 86 f8 04 00 00    	mov    0x4f8(%esi),%eax
594768:	85 c0                	test   %eax,%eax
59476a:	74 0f                	je     0x59477b
59476c:	50                   	push   %eax
59476d:	57                   	push   %edi
59476e:	56                   	push   %esi
59476f:	e8 3c 1b 00 00       	call   0x5962b0
594774:	83 c4 0c             	add    $0xc,%esp
594777:	85 c0                	test   %eax,%eax
594779:	7f 59                	jg     0x5947d4
59477b:	8b 86 ec 04 00 00    	mov    0x4ec(%esi),%eax
594781:	85 43 08             	test   %eax,0x8(%ebx)
594784:	75 4e                	jne    0x5947d4
594786:	f6 43 04 02          	testb  $0x2,0x4(%ebx)
59478a:	74 0f                	je     0x59479b
59478c:	8b 86 04 04 00 00    	mov    0x404(%esi),%eax
594792:	f7 40 10 00 00 03 00 	testl  $0x30000,0x10(%eax)
594799:	75 39                	jne    0x5947d4
59479b:	83 7c 24 10 00       	cmpl   $0x0,0x10(%esp)
5947a0:	8b 7c 24 1c          	mov    0x1c(%esp),%edi
5947a4:	75 0a                	jne    0x5947b0
5947a6:	8b 4c 24 20          	mov    0x20(%esp),%ecx
5947aa:	8b 03                	mov    (%ebx),%eax
5947ac:	89 01                	mov    %eax,(%ecx)
5947ae:	eb 30                	jmp    0x5947e0
5947b0:	8b 54 24 28          	mov    0x28(%esp),%edx
5947b4:	85 d2                	test   %edx,%edx
5947b6:	74 06                	je     0x5947be
5947b8:	85 ff                	test   %edi,%edi
5947ba:	74 02                	je     0x5947be
5947bc:	89 3a                	mov    %edi,(%edx)
5947be:	8b 44 24 20          	mov    0x20(%esp),%eax
5947c2:	8b 0b                	mov    (%ebx),%ecx
5947c4:	89 4c 24 14          	mov    %ecx,0x14(%esp)
5947c8:	c7 44 24 10 00 00 00 	movl   $0x0,0x10(%esp)
5947cf:	00
5947d0:	89 08                	mov    %ecx,(%eax)
5947d2:	eb 10                	jmp    0x5947e4
5947d4:	8b 7c 24 1c          	mov    0x1c(%esp),%edi
5947d8:	c7 44 24 10 01 00 00 	movl   $0x1,0x10(%esp)
5947df:	00
5947e0:	8b 4c 24 14          	mov    0x14(%esp),%ecx
5947e4:	83 c5 0c             	add    $0xc,%ebp
5947e7:	83 7d 00 00          	cmpl   $0x0,0x0(%ebp)
5947eb:	0f 85 e1 fe ff ff    	jne    0x5946d2
5947f1:	5b                   	pop    %ebx
5947f2:	8b 44 24 20          	mov    0x20(%esp),%eax
5947f6:	5f                   	pop    %edi
5947f7:	89 08                	mov    %ecx,(%eax)
5947f9:	85 c9                	test   %ecx,%ecx
5947fb:	75 0b                	jne    0x594808
5947fd:	5e                   	pop    %esi
5947fe:	b8 bf 00 00 00       	mov    $0xbf,%eax
594803:	5d                   	pop    %ebp
594804:	83 c4 08             	add    $0x8,%esp
594807:	c3                   	ret
594808:	5e                   	pop    %esi
594809:	33 c0                	xor    %eax,%eax
59480b:	5d                   	pop    %ebp
59480c:	83 c4 08             	add    $0x8,%esp
59480f:	c3                   	ret
594810:	53                   	push   %ebx
594811:	56                   	push   %esi
594812:	8b 74 24 0c          	mov    0xc(%esp),%esi
594816:	57                   	push   %edi
594817:	8b 7c 24 14          	mov    0x14(%esp),%edi
59481b:	8b 86 f4 04 00 00    	mov    0x4f4(%esi),%eax
594821:	8b 1f                	mov    (%edi),%ebx
594823:	85 c0                	test   %eax,%eax
594825:	74 0f                	je     0x594836
594827:	50                   	push   %eax
594828:	53                   	push   %ebx
594829:	56                   	push   %esi
59482a:	e8 81 1a 00 00       	call   0x5962b0
59482f:	83 c4 0c             	add    $0xc,%esp
594832:	85 c0                	test   %eax,%eax
594834:	78 14                	js     0x59484a
594836:	6a 00                	push   $0x0
594838:	53                   	push   %ebx
594839:	6a 00                	push   $0x0
59483b:	6a 09                	push   $0x9
59483d:	56                   	push   %esi
59483e:	e8 3d 6d ff ff       	call   0x58b580
594843:	83 c4 14             	add    $0x14,%esp
594846:	85 c0                	test   %eax,%eax
594848:	75 09                	jne    0x594853
59484a:	5f                   	pop    %edi
59484b:	5e                   	pop    %esi
59484c:	b8 8c 01 00 00       	mov    $0x18c,%eax
594851:	5b                   	pop    %ebx
594852:	c3                   	ret
594853:	8b 86 f8 04 00 00    	mov    0x4f8(%esi),%eax
594859:	85 c0                	test   %eax,%eax
59485b:	74 18                	je     0x594875
59485d:	50                   	push   %eax
59485e:	53                   	push   %ebx
59485f:	56                   	push   %esi
594860:	e8 4b 1a 00 00       	call   0x5962b0
594865:	83 c4 0c             	add    $0xc,%esp
594868:	85 c0                	test   %eax,%eax
59486a:	7e 09                	jle    0x594875
59486c:	5f                   	pop    %edi
59486d:	5e                   	pop    %esi
59486e:	b8 a6 00 00 00       	mov    $0xa6,%eax
594873:	5b                   	pop    %ebx
594874:	c3                   	ret
594875:	8b 86 ec 04 00 00    	mov    0x4ec(%esi),%eax
59487b:	85 47 08             	test   %eax,0x8(%edi)
59487e:	74 09                	je     0x594889
594880:	5f                   	pop    %edi
594881:	5e                   	pop    %esi
594882:	b8 02 01 00 00       	mov    $0x102,%eax
594887:	5b                   	pop    %ebx
594888:	c3                   	ret
594889:	f6 47 04 02          	testb  $0x2,0x4(%edi)
59488d:	74 18                	je     0x5948a7
59488f:	8b 86 04 04 00 00    	mov    0x404(%esi),%eax
594895:	f7 40 10 00 00 03 00 	testl  $0x30000,0x10(%eax)
59489c:	74 09                	je     0x5948a7
59489e:	5f                   	pop    %edi
59489f:	5e                   	pop    %esi
5948a0:	b8 9e 00 00 00       	mov    $0x9e,%eax
5948a5:	5b                   	pop    %ebx
5948a6:	c3                   	ret
5948a7:	5f                   	pop    %edi
5948a8:	5e                   	pop    %esi
5948a9:	33 c0                	xor    %eax,%eax
5948ab:	5b                   	pop    %ebx
5948ac:	c3                   	ret
5948ad:	cc                   	int3
5948ae:	cc                   	int3
5948af:	cc                   	int3
5948b0:	b8 04 00 00 00       	mov    $0x4,%eax
5948b5:	e8 f6 ce 03 00       	call   0x5d17b0
5948ba:	56                   	push   %esi
5948bb:	8b 74 24 0c          	mov    0xc(%esp),%esi
5948bf:	8b 46 7c             	mov    0x7c(%esi),%eax
5948c2:	83 b8 80 01 00 00 00 	cmpl   $0x0,0x180(%eax)
5948c9:	74 09                	je     0x5948d4
5948cb:	83 b8 04 02 00 00 00 	cmpl   $0x0,0x204(%eax)
5948d2:	75 3b                	jne    0x59490f
5948d4:	6a 00                	push   $0x0
5948d6:	8d 44 24 10          	lea    0x10(%esp),%eax
5948da:	50                   	push   %eax
5948db:	8d 44 24 0c          	lea    0xc(%esp),%eax
5948df:	50                   	push   %eax
5948e0:	56                   	push   %esi
5948e1:	e8 6a fd ff ff       	call   0x594650
5948e6:	83 c4 10             	add    $0x10,%esp
5948e9:	85 c0                	test   %eax,%eax
5948eb:	75 24                	jne    0x594911
5948ed:	8b 46 04             	mov    0x4(%esi),%eax
5948f0:	8b 4c 24 0c          	mov    0xc(%esp),%ecx
5948f4:	89 0e                	mov    %ecx,(%esi)
5948f6:	8b 40 64             	mov    0x64(%eax),%eax
5948f9:	f6 40 30 08          	testb  $0x8,0x30(%eax)
5948fd:	75 0a                	jne    0x594909
5948ff:	b8 03 03 00 00       	mov    $0x303,%eax
594904:	3b c8                	cmp    %eax,%ecx
594906:	0f 4f c8             	cmovg  %eax,%ecx
594909:	89 8e 04 05 00 00    	mov    %ecx,0x504(%esi)
59490f:	33 c0                	xor    %eax,%eax
594911:	5e                   	pop    %esi
594912:	59                   	pop    %ecx
594913:	c3                   	ret
594914:	cc                   	int3
594915:	cc                   	int3
594916:	cc                   	int3
594917:	cc                   	int3
594918:	cc                   	int3
594919:	cc                   	int3
59491a:	cc                   	int3
59491b:	cc                   	int3
59491c:	cc                   	int3
59491d:	cc                   	int3
59491e:	cc                   	int3
59491f:	cc                   	int3
594920:	8b 4c 24 08          	mov    0x8(%esp),%ecx
594924:	85 c9                	test   %ecx,%ecx
594926:	75 0a                	jne    0x594932
594928:	8b 44 24 0c          	mov    0xc(%esp),%eax
59492c:	89 08                	mov    %ecx,(%eax)
59492e:	8d 41 01             	lea    0x1(%ecx),%eax
594931:	c3                   	ret
594932:	81 f9 00 01 00 00    	cmp    $0x100,%ecx
594938:	ba 00 ff 00 00       	mov    $0xff00,%edx
59493d:	8b c1                	mov    %ecx,%eax
59493f:	0f 44 c2             	cmove  %edx,%eax
594942:	56                   	push   %esi
594943:	8d b1 00 fd ff ff    	lea    -0x300(%ecx),%esi
594949:	8d 90 03 01 ff ff    	lea    -0xfefd(%eax),%edx
59494f:	83 fe 04             	cmp    $0x4,%esi
594952:	76 09                	jbe    0x59495d
594954:	83 fa 03             	cmp    $0x3,%edx
594957:	76 04                	jbe    0x59495d
594959:	33 c0                	xor    %eax,%eax
59495b:	5e                   	pop    %esi
59495c:	c3                   	ret
59495d:	8b 44 24 08          	mov    0x8(%esp),%eax
594961:	3d 00 00 01 00       	cmp    $0x10000,%eax
594966:	74 0c                	je     0x594974
594968:	3d ff ff 01 00       	cmp    $0x1ffff,%eax
59496d:	75 10                	jne    0x59497f
59496f:	83 fa 03             	cmp    $0x3,%edx
594972:	eb 03                	jmp    0x594977
594974:	83 fe 04             	cmp    $0x4,%esi
594977:	77 06                	ja     0x59497f
594979:	8b 44 24 10          	mov    0x10(%esp),%eax
59497d:	89 08                	mov    %ecx,(%eax)
59497f:	b8 01 00 00 00       	mov    $0x1,%eax
594984:	5e                   	pop    %esi
594985:	c3                   	ret
594986:	cc                   	int3
594987:	cc                   	int3
594988:	cc                   	int3
594989:	cc                   	int3
59498a:	cc                   	int3
59498b:	cc                   	int3
59498c:	cc                   	int3
59498d:	cc                   	int3
59498e:	cc                   	int3
59498f:	cc                   	int3
594990:	55                   	push   %ebp
594991:	57                   	push   %edi
594992:	8b 7c 24 0c          	mov    0xc(%esp),%edi
594996:	8b 47 04             	mov    0x4(%edi),%eax
594999:	8b 00                	mov    (%eax),%eax
59499b:	3d 00 00 01 00       	cmp    $0x10000,%eax
5949a0:	74 25                	je     0x5949c7
5949a2:	3d ff ff 01 00       	cmp    $0x1ffff,%eax
5949a7:	74 17                	je     0x5949c0
5949a9:	ff 37                	push   (%edi)
5949ab:	ff 74 24 14          	push   0x14(%esp)
5949af:	57                   	push   %edi
5949b0:	e8 fb 18 00 00       	call   0x5962b0
5949b5:	83 c4 0c             	add    $0xc,%esp
5949b8:	f7 d8                	neg    %eax
5949ba:	1b c0                	sbb    %eax,%eax
5949bc:	40                   	inc    %eax
5949bd:	5f                   	pop    %edi
5949be:	5d                   	pop    %ebp
5949bf:	c3                   	ret
5949c0:	bd 90 71 66 00       	mov    $0x667190,%ebp
5949c5:	eb 05                	jmp    0x5949cc
5949c7:	bd 48 71 66 00       	mov    $0x667148,%ebp
5949cc:	53                   	push   %ebx
5949cd:	56                   	push   %esi
5949ce:	8b 75 00             	mov    0x0(%ebp),%esi
5949d1:	85 f6                	test   %esi,%esi
5949d3:	0f 84 24 01 00 00    	je     0x594afd
5949d9:	8b 5c 24 18          	mov    0x18(%esp),%ebx
5949dd:	ba 00 ff 00 00       	mov    $0xff00,%edx
5949e2:	3b de                	cmp    %esi,%ebx
5949e4:	74 41                	je     0x594a27
5949e6:	8b 47 04             	mov    0x4(%edi),%eax
5949e9:	8b 40 64             	mov    0x64(%eax),%eax
5949ec:	f6 40 30 08          	testb  $0x8,0x30(%eax)
5949f0:	75 09                	jne    0x5949fb
5949f2:	33 d2                	xor    %edx,%edx
5949f4:	3b de                	cmp    %esi,%ebx
5949f6:	0f 9d c2             	setge  %dl
5949f9:	eb 1d                	jmp    0x594a18
5949fb:	81 fe 00 01 00 00    	cmp    $0x100,%esi
594a01:	8b ce                	mov    %esi,%ecx
594a03:	8b c3                	mov    %ebx,%eax
594a05:	0f 44 ca             	cmove  %edx,%ecx
594a08:	81 fb 00 01 00 00    	cmp    $0x100,%ebx
594a0e:	0f 44 c2             	cmove  %edx,%eax
594a11:	33 d2                	xor    %edx,%edx
594a13:	3b c1                	cmp    %ecx,%eax
594a15:	0f 9e c2             	setle  %dl
594a18:	8d 14 55 ff ff ff ff 	lea    -0x1(,%edx,2),%edx
594a1f:	85 d2                	test   %edx,%edx
594a21:	0f 8f d6 00 00 00    	jg     0x594afd
594a27:	8b 45 04             	mov    0x4(%ebp),%eax
594a2a:	85 c0                	test   %eax,%eax
594a2c:	0f 84 bd 00 00 00    	je     0x594aef
594a32:	3b de                	cmp    %esi,%ebx
594a34:	0f 85 b5 00 00 00    	jne    0x594aef
594a3a:	ff d0                	call   *%eax