587671:	e8 ca 93 f5 ff       	call   0x4e0a40
587676:	8b d0                	mov    %eax,%edx
587678:	83 c4 0c             	add    $0xc,%esp
58767b:	89 54 24 14          	mov    %edx,0x14(%esp)
58767f:	85 d2                	test   %edx,%edx
587681:	75 23                	jne    0x5876a6
587683:	68 a3 03 00 00       	push   $0x3a3
587688:	68 a4 46 66 00       	push   $0x6646a4
58768d:	6a 41                	push   $0x41
58768f:	68 e7 00 00 00       	push   $0xe7
587694:	6a 14                	push   $0x14
587696:	e8 e5 18 f5 ff       	call   0x4d8f80
58769b:	83 c4 14             	add    $0x14,%esp
58769e:	33 c0                	xor    %eax,%eax
5876a0:	5d                   	pop    %ebp
5876a1:	5b                   	pop    %ebx
5876a2:	83 c4 10             	add    $0x10,%esp
5876a5:	c3                   	ret
5876a6:	8b 0b                	mov    (%ebx),%ecx
5876a8:	85 c9                	test   %ecx,%ecx
5876aa:	74 19                	je     0x5876c5
5876ac:	0f 1f 40 00          	nopl   0x0(%eax)
5876b0:	83 79 04 00          	cmpl   $0x0,0x4(%ecx)
5876b4:	74 08                	je     0x5876be
5876b6:	8b 01                	mov    (%ecx),%eax
5876b8:	8b 40 38             	mov    0x38(%eax),%eax
5876bb:	ff 04 82             	incl   (%edx,%eax,4)
5876be:	8b 49 0c             	mov    0xc(%ecx),%ecx
5876c1:	85 c9                	test   %ecx,%ecx
5876c3:	75 eb                	jne    0x5876b0
5876c5:	85 ed                	test   %ebp,%ebp
5876c7:	0f 88 a1 00 00 00    	js     0x58776e
5876cd:	56                   	push   %esi
5876ce:	57                   	push   %edi
5876cf:	90                   	nop
5876d0:	83 3c aa 00          	cmpl   $0x0,(%edx,%ebp,4)
5876d4:	0f 8e 89 00 00 00    	jle    0x587763
5876da:	8b 4c 24 28          	mov    0x28(%esp),%ecx
5876de:	8b 1b                	mov    (%ebx),%ebx
5876e0:	8b 31                	mov    (%ecx),%esi
5876e2:	89 74 24 18          	mov    %esi,0x18(%esp)
5876e6:	85 f6                	test   %esi,%esi
5876e8:	74 6f                	je     0x587759
5876ea:	8b d3                	mov    %ebx,%edx
5876ec:	0f 1f 40 00          	nopl   0x0(%eax)
5876f0:	89 5c 24 14          	mov    %ebx,0x14(%esp)
5876f4:	8b fb                	mov    %ebx,%edi
5876f6:	8b c2                	mov    %edx,%eax
5876f8:	85 d2                	test   %edx,%edx
5876fa:	74 55                	je     0x587751
5876fc:	8d 4a 0c             	lea    0xc(%edx),%ecx
5876ff:	8b 11                	mov    (%ecx),%edx
587701:	89 4c 24 10          	mov    %ecx,0x10(%esp)
587705:	8b 08                	mov    (%eax),%ecx
587707:	3b 69 38             	cmp    0x38(%ecx),%ebp
58770a:	75 3f                	jne    0x58774b
58770c:	83 78 04 00          	cmpl   $0x0,0x4(%eax)
587710:	74 39                	je     0x58774b
587712:	3b c6                	cmp    %esi,%eax
587714:	74 35                	je     0x58774b
587716:	8b 48 10             	mov    0x10(%eax),%ecx
587719:	3b c7                	cmp    %edi,%eax
58771b:	8b da                	mov    %edx,%ebx
58771d:	0f 45 df             	cmovne %edi,%ebx
587720:	8b fa                	mov    %edx,%edi
587722:	85 c9                	test   %ecx,%ecx
587724:	74 09                	je     0x58772f
587726:	8b 7c 24 10          	mov    0x10(%esp),%edi
58772a:	89 51 0c             	mov    %edx,0xc(%ecx)
58772d:	8b 3f                	mov    (%edi),%edi
58772f:	85 ff                	test   %edi,%edi
587731:	74 06                	je     0x587739
587733:	8b 48 10             	mov    0x10(%eax),%ecx
587736:	89 4f 10             	mov    %ecx,0x10(%edi)
587739:	8b 4c 24 10          	mov    0x10(%esp),%ecx
58773d:	89 46 0c             	mov    %eax,0xc(%esi)
587740:	89 70 10             	mov    %esi,0x10(%eax)
587743:	8b f0                	mov    %eax,%esi
587745:	c7 01 00 00 00 00    	movl   $0x0,(%ecx)
58774b:	3b 44 24 18          	cmp    0x18(%esp),%eax
58774f:	75 9f                	jne    0x5876f0
587751:	8b 54 24 1c          	mov    0x1c(%esp),%edx
587755:	8b 4c 24 28          	mov    0x28(%esp),%ecx
587759:	8b 44 24 24          	mov    0x24(%esp),%eax
58775d:	89 18                	mov    %ebx,(%eax)
58775f:	8b d8                	mov    %eax,%ebx
587761:	89 31                	mov    %esi,(%ecx)
587763:	83 ed 01             	sub    $0x1,%ebp
587766:	0f 89 64 ff ff ff    	jns    0x5876d0
58776c:	5f                   	pop    %edi
58776d:	5e                   	pop    %esi
58776e:	68 b9 03 00 00       	push   $0x3b9
587773:	68 a4 46 66 00       	push   $0x6646a4
587778:	52                   	push   %edx
587779:	e8 02 90 f5 ff       	call   0x4e0780
58777e:	83 c4 0c             	add    $0xc,%esp
587781:	b8 01 00 00 00       	mov    $0x1,%eax
587786:	5d                   	pop    %ebp
587787:	5b                   	pop    %ebx
587788:	83 c4 10             	add    $0x10,%esp
58778b:	c3                   	ret
58778c:	cc                   	int3
58778d:	cc                   	int3
58778e:	cc                   	int3
58778f:	cc                   	int3
587790:	b8 20 00 00 00       	mov    $0x20,%eax
587795:	e8 16 a0 04 00       	call   0x5d17b0
58779a:	53                   	push   %ebx
58779b:	8b 5c 24 38          	mov    0x38(%esp),%ebx
58779f:	c7 44 24 04 00 00 00 	movl   $0x0,0x4(%esp)
5877a6:	00
5877a7:	c7 44 24 08 00 00 00 	movl   $0x0,0x8(%esp)
5877ae:	00
5877af:	56                   	push   %esi
5877b0:	57                   	push   %edi
5877b1:	85 db                	test   %ebx,%ebx
5877b3:	0f 84 d4 00 00 00    	je     0x58788d
5877b9:	83 7c 24 38 00       	cmpl   $0x0,0x38(%esp)
5877be:	0f 84 c9 00 00 00    	je     0x58788d
5877c4:	83 7c 24 3c 00       	cmpl   $0x0,0x3c(%esp)
5877c9:	0f 84 be 00 00 00    	je     0x58788d
5877cf:	6a 0d                	push   $0xd
5877d1:	68 cc 46 66 00       	push   $0x6646cc
5877d6:	53                   	push   %ebx
5877d7:	33 ff                	xor    %edi,%edi
5877d9:	e8 b2 df 05 00       	call   0x5e5790
5877de:	83 c4 0c             	add    $0xc,%esp
5877e1:	85 c0                	test   %eax,%eax
5877e3:	75 07                	jne    0x5877ec
5877e5:	b9 00 00 01 00       	mov    $0x10000,%ecx
5877ea:	eb 52                	jmp    0x58783e
5877ec:	6a 0b                	push   $0xb
5877ee:	68 dc 46 66 00       	push   $0x6646dc
5877f3:	53                   	push   %ebx
5877f4:	e8 97 df 05 00       	call   0x5e5790
5877f9:	83 c4 0c             	add    $0xc,%esp
5877fc:	85 c0                	test   %eax,%eax
5877fe:	75 0a                	jne    0x58780a
587800:	8d 78 01             	lea    0x1(%eax),%edi
587803:	b9 00 00 03 00       	mov    $0x30000,%ecx
587808:	eb 34                	jmp    0x58783e
58780a:	6a 09                	push   $0x9
58780c:	68 e8 46 66 00       	push   $0x6646e8
587811:	53                   	push   %ebx
587812:	e8 79 df 05 00       	call   0x5e5790
587817:	83 c4 0c             	add    $0xc,%esp
58781a:	85 c0                	test   %eax,%eax
58781c:	75 07                	jne    0x587825
58781e:	b9 00 00 03 00       	mov    $0x30000,%ecx
587823:	eb 19                	jmp    0x58783e
587825:	6a 09                	push   $0x9
587827:	68 f4 46 66 00       	push   $0x6646f4
58782c:	53                   	push   %ebx
58782d:	e8 5e df 05 00       	call   0x5e5790
587832:	83 c4 0c             	add    $0xc,%esp
587835:	85 c0                	test   %eax,%eax
587837:	75 18                	jne    0x587851
587839:	b9 00 00 02 00       	mov    $0x20000,%ecx
58783e:	8b 54 24 44          	mov    0x44(%esp),%edx
587842:	8b 42 10             	mov    0x10(%edx),%eax
587845:	25 ff ff fc ff       	and    $0xfffcffff,%eax
58784a:	0b c1                	or     %ecx,%eax
58784c:	89 42 10             	mov    %eax,0x10(%edx)
58784f:	eb 0d                	jmp    0x58785e
587851:	8b 4c 24 44          	mov    0x44(%esp),%ecx
587855:	8b 49 10             	mov    0x10(%ecx),%ecx
587858:	81 e1 00 00 03 00    	and    $0x30000,%ecx
58785e:	8b 74 24 30          	mov    0x30(%esp),%esi
587862:	85 c9                	test   %ecx,%ecx
587864:	74 6d                	je     0x5878d3
587866:	8b 46 64             	mov    0x64(%esi),%eax
587869:	f6 40 30 10          	testb  $0x10,0x30(%eax)
58786d:	75 27                	jne    0x587896
58786f:	68 e2 04 00 00       	push   $0x4e2
587874:	68 a4 46 66 00       	push   $0x6646a4
587879:	68 9e 00 00 00       	push   $0x9e
58787e:	68 4b 01 00 00       	push   $0x14b
587883:	6a 14                	push   $0x14
587885:	e8 f6 16 f5 ff       	call   0x4d8f80
58788a:	83 c4 14             	add    $0x14,%esp
58788d:	5f                   	pop    %edi
58788e:	5e                   	pop    %esi
58788f:	33 c0                	xor    %eax,%eax
587891:	5b                   	pop    %ebx
587892:	83 c4 20             	add    $0x20,%esp
587895:	c3                   	ret
587896:	81 f9 00 00 01 00    	cmp    $0x10000,%ecx
58789c:	74 2c                	je     0x5878ca
58789e:	81 f9 00 00 02 00    	cmp    $0x20000,%ecx
5878a4:	74 1d                	je     0x5878c3
5878a6:	81 f9 00 00 03 00    	cmp    $0x30000,%ecx
5878ac:	75 25                	jne    0x5878d3
5878ae:	85 ff                	test   %edi,%edi
5878b0:	bb 20 47 66 00       	mov    $0x664720,%ebx
5878b5:	b8 00 47 66 00       	mov    $0x664700,%eax
5878ba:	0f 45 d8             	cmovne %eax,%ebx
5878bd:	89 5c 24 40          	mov    %ebx,0x40(%esp)
5878c1:	eb 10                	jmp    0x5878d3
5878c3:	b8 00 47 66 00       	mov    $0x664700,%eax
5878c8:	eb 05                	jmp    0x5878cf
5878ca:	b8 5c 47 66 00       	mov    $0x66475c,%eax
5878cf:	89 44 24 40          	mov    %eax,0x40(%esp)
5878d3:	a1 bc 6c 69 00       	mov    0x696cbc,%eax
5878d8:	8b 3d b4 6c 69 00    	mov    0x696cb4,%edi
5878de:	89 44 24 18          	mov    %eax,0x18(%esp)
5878e2:	a1 c0 6c 69 00       	mov    0x696cc0,%eax
5878e7:	55                   	push   %ebp
5878e8:	8b 2d b8 6c 69 00    	mov    0x696cb8,%ebp
5878ee:	89 44 24 20          	mov    %eax,0x20(%esp)
5878f2:	8b 46 58             	mov    0x58(%esi),%eax
5878f5:	89 7c 24 28          	mov    %edi,0x28(%esp)
5878f9:	89 6c 24 24          	mov    %ebp,0x24(%esp)
5878fd:	ff d0                	call   *%eax
5878ff:	8b d8                	mov    %eax,%ebx
587901:	68 a4 05 00 00       	push   $0x5a4
587906:	68 a4 46 66 00       	push   $0x6646a4
58790b:	89 5c 24 34          	mov    %ebx,0x34(%esp)
58790f:	8d 0c 9b             	lea    (%ebx,%ebx,4),%ecx
587912:	c1 e1 02             	shl    $0x2,%ecx
587915:	51                   	push   %ecx
587916:	e8 35 8e f5 ff       	call   0x4e0750
58791b:	83 c4 0c             	add    $0xc,%esp
58791e:	89 44 24 18          	mov    %eax,0x18(%esp)
587922:	85 c0                	test   %eax,%eax
587924:	75 25                	jne    0x58794b
587926:	68 a6 05 00 00       	push   $0x5a6
58792b:	68 a4 46 66 00       	push   $0x6646a4
587930:	6a 41                	push   $0x41
587932:	68 a6 00 00 00       	push   $0xa6
587937:	6a 14                	push   $0x14
587939:	e8 42 16 f5 ff       	call   0x4d8f80
58793e:	83 c4 14             	add    $0x14,%esp
587941:	33 c0                	xor    %eax,%eax
587943:	5d                   	pop    %ebp
587944:	5f                   	pop    %edi
587945:	5e                   	pop    %esi
587946:	5b                   	pop    %ebx
587947:	83 c4 20             	add    $0x20,%esp
58794a:	c3                   	ret
58794b:	8d 4c 24 14          	lea    0x14(%esp),%ecx
58794f:	51                   	push   %ecx
587950:	8d 4c 24 14          	lea    0x14(%esp),%ecx
587954:	51                   	push   %ecx
587955:	50                   	push   %eax
587956:	55                   	push   %ebp
587957:	57                   	push   %edi
587958:	ff 74 24 34          	push   0x34(%esp)
58795c:	ff 74 24 34          	push   0x34(%esp)
587960:	53                   	push   %ebx
587961:	56                   	push   %esi
587962:	e8 c9 f3 ff ff       	call   0x586d30
587967:	8b 7c 24 38          	mov    0x38(%esp),%edi
58796b:	83 c4 24             	add    $0x24,%esp
58796e:	8b 74 24 10          	mov    0x10(%esp),%esi
587972:	8b ef                	mov    %edi,%ebp
587974:	85 ed                	test   %ebp,%ebp
587976:	74 65                	je     0x5879dd
587978:	8b d6                	mov    %esi,%edx
58797a:	66 0f 1f 44 00 00    	nopw   0x0(%eax,%eax,1)
587980:	8b ca                	mov    %edx,%ecx
587982:	85 d2                	test   %edx,%edx
587984:	74 57                	je     0x5879dd
587986:	8b 01                	mov    (%ecx),%eax
587988:	8d 5a 0c             	lea    0xc(%edx),%ebx
58798b:	8b 13                	mov    (%ebx),%edx
58798d:	f6 40 10 04          	testb  $0x4,0x10(%eax)
587991:	74 46                	je     0x5879d9
587993:	f6 40 14 08          	testb  $0x8,0x14(%eax)
587997:	74 40                	je     0x5879d9
587999:	83 79 04 00          	cmpl   $0x0,0x4(%ecx)
58799d:	75 3a                	jne    0x5879d9
58799f:	3b cd                	cmp    %ebp,%ecx
5879a1:	74 2f                	je     0x5879d2
5879a3:	8b 41 10             	mov    0x10(%ecx),%eax
5879a6:	3b ce                	cmp    %esi,%ecx
5879a8:	8b fa                	mov    %edx,%edi
5879aa:	0f 44 f2             	cmove  %edx,%esi
5879ad:	85 c0                	test   %eax,%eax
5879af:	74 05                	je     0x5879b6
5879b1:	89 50 0c             	mov    %edx,0xc(%eax)
5879b4:	8b 3b                	mov    (%ebx),%edi
5879b6:	85 ff                	test   %edi,%edi
5879b8:	74 06                	je     0x5879c0
5879ba:	8b 41 10             	mov    0x10(%ecx),%eax
5879bd:	89 47 10             	mov    %eax,0x10(%edi)
5879c0:	8b 7c 24 14          	mov    0x14(%esp),%edi
5879c4:	89 4d 0c             	mov    %ecx,0xc(%ebp)
5879c7:	89 69 10             	mov    %ebp,0x10(%ecx)
5879ca:	8b e9                	mov    %ecx,%ebp
5879cc:	c7 03 00 00 00 00    	movl   $0x0,(%ebx)
5879d2:	c7 41 04 01 00 00 00 	movl   $0x1,0x4(%ecx)
5879d9:	3b cf                	cmp    %edi,%ecx
5879db:	75 a3                	jne    0x587980
5879dd:	8b fe                	mov    %esi,%edi
5879df:	8b d5                	mov    %ebp,%edx
5879e1:	89 7c 24 14          	mov    %edi,0x14(%esp)
5879e5:	85 ed                	test   %ebp,%ebp
5879e7:	74 62                	je     0x587a4b
5879e9:	89 7c 24 14          	mov    %edi,0x14(%esp)
5879ed:	0f 1f 00             	nopl   (%eax)
5879f0:	8b ce                	mov    %esi,%ecx
5879f2:	85 f6                	test   %esi,%esi
5879f4:	74 55                	je     0x587a4b
5879f6:	8b 01                	mov    (%ecx),%eax
5879f8:	8d 5e 0c             	lea    0xc(%esi),%ebx
5879fb:	8b 33                	mov    (%ebx),%esi
5879fd:	f6 40 10 04          	testb  $0x4,0x10(%eax)
587a01:	74 44                	je     0x587a47
587a03:	83 79 04 00          	cmpl   $0x0,0x4(%ecx)
587a07:	75 3e                	jne    0x587a47
587a09:	3b ca                	cmp    %edx,%ecx
587a0b:	74 33                	je     0x587a40
587a0d:	8b 41 10             	mov    0x10(%ecx),%eax
587a10:	3b cf                	cmp    %edi,%ecx
587a12:	0f 44 fe             	cmove  %esi,%edi
587a15:	89 7c 24 14          	mov    %edi,0x14(%esp)
587a19:	8b fe                	mov    %esi,%edi
587a1b:	85 c0                	test   %eax,%eax
587a1d:	74 05                	je     0x587a24
587a1f:	89 70 0c             	mov    %esi,0xc(%eax)
587a22:	8b 3b                	mov    (%ebx),%edi
587a24:	85 ff                	test   %edi,%edi
587a26:	74 06                	je     0x587a2e
587a28:	8b 41 10             	mov    0x10(%ecx),%eax
587a2b:	89 47 10             	mov    %eax,0x10(%edi)
587a2e:	8b 7c 24 14          	mov    0x14(%esp),%edi
587a32:	89 4a 0c             	mov    %ecx,0xc(%edx)
587a35:	89 51 10             	mov    %edx,0x10(%ecx)
587a38:	8b d1                	mov    %ecx,%edx
587a3a:	c7 03 00 00 00 00    	movl   $0x0,(%ebx)
587a40:	c7 41 04 01 00 00 00 	movl   $0x1,0x4(%ecx)
587a47:	3b cd                	cmp    %ebp,%ecx
587a49:	75 a5                	jne    0x5879f0
587a4b:	89 54 24 10          	mov    %edx,0x10(%esp)
587a4f:	8b f7                	mov    %edi,%esi
587a51:	8b ea                	mov    %edx,%ebp
587a53:	85 ff                	test   %edi,%edi
587a55:	74 5b                	je     0x587ab2
587a57:	8b ca                	mov    %edx,%ecx
587a59:	85 d2                	test   %edx,%edx
587a5b:	74 51                	je     0x587aae
587a5d:	8b 01                	mov    (%ecx),%eax
587a5f:	8d 5a 10             	lea    0x10(%edx),%ebx
587a62:	8b 13                	mov    (%ebx),%edx
587a64:	f6 40 10 04          	testb  $0x4,0x10(%eax)
587a68:	74 40                	je     0x587aaa
587a6a:	83 79 04 00          	cmpl   $0x0,0x4(%ecx)
587a6e:	74 3a                	je     0x587aaa
587a70:	3b ce                	cmp    %esi,%ecx
587a72:	74 2f                	je     0x587aa3