587488:	8b 4c 24 3c          	mov    0x3c(%esp),%ecx
58748c:	0b c8                	or     %eax,%ecx
58748e:	89 4c 24 3c          	mov    %ecx,0x3c(%esp)
587492:	eb e6                	jmp    0x58747a
587494:	8b 42 20             	mov    0x20(%edx),%eax
587497:	85 c0                	test   %eax,%eax
587499:	74 14                	je     0x5874af
58749b:	8b 54 24 30          	mov    0x30(%esp),%edx
58749f:	85 d2                	test   %edx,%edx
5874a1:	74 08                	je     0x5874ab
5874a3:	3b d0                	cmp    %eax,%edx
5874a5:	0f 85 cf fe ff ff    	jne    0x58737a
5874ab:	89 44 24 30          	mov    %eax,0x30(%esp)
5874af:	8b 44 24 14          	mov    0x14(%esp),%eax
5874b3:	80 fb 2b             	cmp    $0x2b,%bl
5874b6:	0f 84 04 fe ff ff    	je     0x5872c0
5874bc:	ff 74 24 44          	push   0x44(%esp)
5874c0:	8b d0                	mov    %eax,%edx
5874c2:	ff 74 24 44          	push   0x44(%esp)
5874c6:	6a ff                	push   $0xffffffff
5874c8:	52                   	push   %edx
5874c9:	51                   	push   %ecx
5874ca:	8b 4c 24 44          	mov    0x44(%esp),%ecx
5874ce:	51                   	push   %ecx
5874cf:	8b 4c 24 3c          	mov    0x3c(%esp),%ecx
5874d3:	51                   	push   %ecx
5874d4:	8b 4c 24 44          	mov    0x44(%esp),%ecx
5874d8:	51                   	push   %ecx
5874d9:	57                   	push   %edi
5874da:	55                   	push   %ebp
5874db:	8b 6c 24 40          	mov    0x40(%esp),%ebp
5874df:	55                   	push   %ebp
5874e0:	e8 1b f5 ff ff       	call   0x586a00
5874e5:	8b 5c 24 3c          	mov    0x3c(%esp),%ebx
5874e9:	83 c4 2c             	add    $0x2c,%esp
5874ec:	8a 06                	mov    (%esi),%al
5874ee:	89 6c 24 18          	mov    %ebp,0x18(%esp)
5874f2:	89 5c 24 10          	mov    %ebx,0x10(%esp)
5874f6:	e9 b9 fe ff ff       	jmp    0x5873b4
5874fb:	68 04 04 00 00       	push   $0x404
587500:	68 a4 46 66 00       	push   $0x6646a4
587505:	68 18 01 00 00       	push   $0x118
58750a:	68 e6 00 00 00       	push   $0xe6
58750f:	6a 14                	push   $0x14
587511:	e8 6a 1a f5 ff       	call   0x4d8f80
587516:	8b 6c 24 2c          	mov    0x2c(%esp),%ebp
58751a:	33 db                	xor    %ebx,%ebx
58751c:	83 c4 14             	add    $0x14,%esp
58751f:	89 6c 24 18          	mov    %ebp,0x18(%esp)
587523:	46                   	inc    %esi
587524:	89 5c 24 10          	mov    %ebx,0x10(%esp)
587528:	83 7c 24 14 05       	cmpl   $0x5,0x14(%esp)
58752d:	0f 85 c1 00 00 00    	jne    0x5875f4
587533:	8b 4c 24 2c          	mov    0x2c(%esp),%ecx
587537:	8b 54 24 34          	mov    0x34(%esp),%edx
58753b:	eb 04                	jmp    0x587541
58753d:	8b 5c 24 10          	mov    0x10(%esp),%ebx
587541:	83 f9 08             	cmp    $0x8,%ecx
587544:	75 29                	jne    0x58756f
587546:	51                   	push   %ecx
587547:	68 b4 46 66 00       	push   $0x6646b4
58754c:	52                   	push   %edx
58754d:	e8 3e e2 05 00       	call   0x5e5790
587552:	83 c4 0c             	add    $0xc,%esp
587555:	85 c0                	test   %eax,%eax
587557:	75 52                	jne    0x5875ab
587559:	ff 74 24 44          	push   0x44(%esp)
58755d:	ff 74 24 44          	push   0x44(%esp)
587561:	e8 ca 00 00 00       	call   0x587630
587566:	83 c4 08             	add    $0x8,%esp
587569:	85 c0                	test   %eax,%eax
58756b:	75 62                	jne    0x5875cf
58756d:	eb 5a                	jmp    0x5875c9
58756f:	83 f9 0a             	cmp    $0xa,%ecx
587572:	75 37                	jne    0x5875ab
587574:	6a 09                	push   $0x9
587576:	68 c0 46 66 00       	push   $0x6646c0
58757b:	52                   	push   %edx
58757c:	e8 0f e2 05 00       	call   0x5e5790
587581:	83 c4 0c             	add    $0xc,%esp
587584:	85 c0                	test   %eax,%eax
587586:	75 23                	jne    0x5875ab
587588:	8b 44 24 34          	mov    0x34(%esp),%eax
58758c:	0f be 40 09          	movsbl 0x9(%eax),%eax
587590:	83 c0 d0             	add    $0xffffffd0,%eax
587593:	83 f8 05             	cmp    $0x5,%eax
587596:	77 0c                	ja     0x5875a4
587598:	8b 4c 24 4c          	mov    0x4c(%esp),%ecx
58759c:	89 81 fc 00 00 00    	mov    %eax,0xfc(%ecx)
5875a2:	eb 2b                	jmp    0x5875cf
5875a4:	68 a3 04 00 00       	push   $0x4a3
5875a9:	eb 05                	jmp    0x5875b0
5875ab:	68 a9 04 00 00       	push   $0x4a9
5875b0:	68 a4 46 66 00       	push   $0x6646a4
5875b5:	68 18 01 00 00       	push   $0x118
5875ba:	68 e6 00 00 00       	push   $0xe6
5875bf:	6a 14                	push   $0x14
5875c1:	e8 ba 19 f5 ff       	call   0x4d8f80
5875c6:	83 c4 14             	add    $0x14,%esp
5875c9:	33 db                	xor    %ebx,%ebx
5875cb:	89 5c 24 10          	mov    %ebx,0x10(%esp)
5875cf:	8a 06                	mov    (%esi),%al
5875d1:	84 c0                	test   %al,%al
5875d3:	74 18                	je     0x5875ed
5875d5:	3c 3a                	cmp    $0x3a,%al
5875d7:	74 14                	je     0x5875ed
5875d9:	3c 20                	cmp    $0x20,%al
5875db:	74 10                	je     0x5875ed
5875dd:	3c 3b                	cmp    $0x3b,%al
5875df:	74 0c                	je     0x5875ed
5875e1:	3c 2c                	cmp    $0x2c,%al
5875e3:	74 08                	je     0x5875ed
5875e5:	8a 46 01             	mov    0x1(%esi),%al
5875e8:	46                   	inc    %esi
5875e9:	84 c0                	test   %al,%al
5875eb:	75 e8                	jne    0x5875d5
5875ed:	8a 06                	mov    (%esi),%al
5875ef:	e9 c0 fd ff ff       	jmp    0x5873b4
5875f4:	33 db                	xor    %ebx,%ebx
5875f6:	89 6c 24 18          	mov    %ebp,0x18(%esp)
5875fa:	89 5c 24 10          	mov    %ebx,0x10(%esp)
5875fe:	e9 7b fd ff ff       	jmp    0x58737e
587603:	8a 46 01             	mov    0x1(%esi),%al
587606:	46                   	inc    %esi
587607:	84 c0                	test   %al,%al
587609:	0f 85 21 fc ff ff    	jne    0x587230
58760f:	5f                   	pop    %edi
587610:	5d                   	pop    %ebp
587611:	5e                   	pop    %esi
587612:	8b c3                	mov    %ebx,%eax
587614:	5b                   	pop    %ebx
587615:	83 c4 28             	add    $0x28,%esp
587618:	c3                   	ret
587619:	5e                   	pop    %esi
58761a:	8b c3                	mov    %ebx,%eax
58761c:	5b                   	pop    %ebx
58761d:	83 c4 28             	add    $0x28,%esp
587620:	c3                   	ret
587621:	cc                   	int3
587622:	cc                   	int3
587623:	cc                   	int3
587624:	cc                   	int3
587625:	cc                   	int3
587626:	cc                   	int3
587627:	cc                   	int3
587628:	cc                   	int3
587629:	cc                   	int3
58762a:	cc                   	int3
58762b:	cc                   	int3
58762c:	cc                   	int3
58762d:	cc                   	int3
58762e:	cc                   	int3
58762f:	cc                   	int3
587630:	b8 10 00 00 00       	mov    $0x10,%eax
587635:	e8 76 a1 04 00       	call   0x5d17b0
58763a:	53                   	push   %ebx
58763b:	8b 5c 24 18          	mov    0x18(%esp),%ebx
58763f:	55                   	push   %ebp
587640:	33 ed                	xor    %ebp,%ebp
587642:	8b 0b                	mov    (%ebx),%ecx
587644:	85 c9                	test   %ecx,%ecx
587646:	74 17                	je     0x58765f
587648:	83 79 04 00          	cmpl   $0x0,0x4(%ecx)
58764c:	74 0a                	je     0x587658
58764e:	8b 01                	mov    (%ecx),%eax
587650:	8b 40 38             	mov    0x38(%eax),%eax
587653:	3b c5                	cmp    %ebp,%eax
587655:	0f 4f e8             	cmovg  %eax,%ebp
587658:	8b 49 0c             	mov    0xc(%ecx),%ecx
58765b:	85 c9                	test   %ecx,%ecx
58765d:	75 e9                	jne    0x587648
58765f:	68 a1 03 00 00       	push   $0x3a1
587664:	8d 04 ad 04 00 00 00 	lea    0x4(,%ebp,4),%eax
58766b:	68 a4 46 66 00       	push   $0x6646a4
587670:	50                   	push   %eax
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