5873ba:	c7 44 24 28 00 00 00 	movl   $0x0,0x28(%esp)
5873c1:	00
5873c2:	e8 89 c1 f2 ff       	call   0x4b3550
5873c7:	83 c4 08             	add    $0x8,%esp
5873ca:	85 c0                	test   %eax,%eax
5873cc:	78 3e                	js     0x58740c
5873ce:	66 90                	xchg   %ax,%ax
5873d0:	8b 4c 24 20          	mov    0x20(%esp),%ecx
5873d4:	8b c1                	mov    %ecx,%eax
5873d6:	41                   	inc    %ecx
5873d7:	89 4c 24 20          	mov    %ecx,0x20(%esp)
5873db:	83 f8 02             	cmp    $0x2,%eax
5873de:	7f 3a                	jg     0x58741a
5873e0:	57                   	push   %edi
5873e1:	56                   	push   %esi
5873e2:	56                   	push   %esi
5873e3:	e8 18 0f f5 ff       	call   0x4d8300
5873e8:	83 c4 0c             	add    $0xc,%esp
5873eb:	85 c0                	test   %eax,%eax
5873ed:	74 72                	je     0x587461
5873ef:	6a 01                	push   $0x1
5873f1:	55                   	push   %ebp
5873f2:	e8 e9 c3 f2 ff       	call   0x4b37e0
5873f7:	83 c4 08             	add    $0x8,%esp
5873fa:	85 c0                	test   %eax,%eax
5873fc:	74 63                	je     0x587461
5873fe:	57                   	push   %edi
5873ff:	56                   	push   %esi
587400:	e8 4b c1 f2 ff       	call   0x4b3550
587405:	83 c4 08             	add    $0x8,%esp
587408:	85 c0                	test   %eax,%eax
58740a:	79 c4                	jns    0x5873d0
58740c:	83 7e 04 00          	cmpl   $0x0,0x4(%esi)
587410:	8b 44 24 28          	mov    0x28(%esp),%eax
587414:	75 34                	jne    0x58744a
587416:	33 c9                	xor    %ecx,%ecx
587418:	eb 33                	jmp    0x58744d
58741a:	68 ce 00 00 00       	push   $0xce
58741f:	68 c0 37 6c 00       	push   $0x6c37c0
587424:	6a 65                	push   $0x65
587426:	68 82 00 00 00       	push   $0x82
58742b:	6a 03                	push   $0x3
58742d:	e8 6e a0 f1 ff       	call   0x4a14a0
587432:	83 c4 14             	add    $0x14,%esp
587435:	53                   	push   %ebx
587436:	e8 15 09 f5 ff       	call   0x4d7d50
58743b:	8b 44 24 1c          	mov    0x1c(%esp),%eax
58743f:	83 c4 04             	add    $0x4,%esp
587442:	5f                   	pop    %edi
587443:	5e                   	pop    %esi
587444:	5d                   	pop    %ebp
587445:	5b                   	pop    %ebx
587446:	83 c4 0c             	add    $0xc,%esp
587449:	c3                   	ret
58744a:	8b 48 0c             	mov    0xc(%eax),%ecx
58744d:	89 4e 0c             	mov    %ecx,0xc(%esi)
587450:	8b 40 0c             	mov    0xc(%eax),%eax
587453:	33 47 0c             	xor    0xc(%edi),%eax
587456:	89 45 0c             	mov    %eax,0xc(%ebp)
587459:	c7 44 24 18 01 00 00 	movl   $0x1,0x18(%esp)
587460:	00
587461:	53                   	push   %ebx
587462:	e8 e9 08 f5 ff       	call   0x4d7d50
587467:	8b 44 24 1c          	mov    0x1c(%esp),%eax
58746b:	83 c4 04             	add    $0x4,%esp
58746e:	5f                   	pop    %edi
58746f:	5e                   	pop    %esi
587470:	5d                   	pop    %ebp
587471:	5b                   	pop    %ebx
587472:	83 c4 0c             	add    $0xc,%esp
587475:	c3                   	ret
587476:	cc                   	int3
587477:	cc                   	int3
587478:	cc                   	int3
587479:	cc                   	int3
58747a:	cc                   	int3
58747b:	cc                   	int3
58747c:	cc                   	int3
58747d:	cc                   	int3
58747e:	cc                   	int3
58747f:	cc                   	int3
587480:	53                   	push   %ebx
587481:	56                   	push   %esi
587482:	8b 74 24 1c          	mov    0x1c(%esp),%esi
587486:	33 db                	xor    %ebx,%ebx
587488:	57                   	push   %edi
587489:	56                   	push   %esi
58748a:	e8 11 0a f5 ff       	call   0x4d7ea0
58748f:	56                   	push   %esi
587490:	e8 2b 09 f5 ff       	call   0x4d7dc0
587495:	8b f8                	mov    %eax,%edi
587497:	83 c4 08             	add    $0x8,%esp
58749a:	85 ff                	test   %edi,%edi
58749c:	74 4c                	je     0x5874ea
58749e:	8b 44 24 18          	mov    0x18(%esp),%eax
5874a2:	85 c0                	test   %eax,%eax
5874a4:	74 2a                	je     0x5874d0
5874a6:	8b 4c 24 14          	mov    0x14(%esp),%ecx
5874aa:	56                   	push   %esi
5874ab:	3b c8                	cmp    %eax,%ecx
5874ad:	75 10                	jne    0x5874bf
5874af:	51                   	push   %ecx
5874b0:	57                   	push   %edi
5874b1:	e8 aa f8 ff ff       	call   0x586d60
5874b6:	83 c4 0c             	add    $0xc,%esp
5874b9:	85 c0                	test   %eax,%eax
5874bb:	74 2d                	je     0x5874ea
5874bd:	eb 15                	jmp    0x5874d4
5874bf:	50                   	push   %eax
5874c0:	51                   	push   %ecx
5874c1:	57                   	push   %edi
5874c2:	e8 b9 0f f5 ff       	call   0x4d8480
5874c7:	83 c4 10             	add    $0x10,%esp
5874ca:	85 c0                	test   %eax,%eax
5874cc:	74 1c                	je     0x5874ea
5874ce:	eb 04                	jmp    0x5874d4
5874d0:	8b 7c 24 14          	mov    0x14(%esp),%edi
5874d4:	56                   	push   %esi
5874d5:	ff 74 24 20          	push   0x20(%esp)
5874d9:	57                   	push   %edi
5874da:	ff 74 24 1c          	push   0x1c(%esp)
5874de:	6a 00                	push   $0x0
5874e0:	e8 2b fd ff ff       	call   0x587210
5874e5:	83 c4 14             	add    $0x14,%esp
5874e8:	8b d8                	mov    %eax,%ebx
5874ea:	56                   	push   %esi
5874eb:	e8 60 08 f5 ff       	call   0x4d7d50
5874f0:	83 c4 04             	add    $0x4,%esp
5874f3:	8b c3                	mov    %ebx,%eax
5874f5:	5f                   	pop    %edi
5874f6:	5e                   	pop    %esi
5874f7:	5b                   	pop    %ebx
5874f8:	c3                   	ret
5874f9:	cc                   	int3
5874fa:	cc                   	int3
5874fb:	cc                   	int3
5874fc:	cc                   	int3
5874fd:	cc                   	int3
5874fe:	cc                   	int3
5874ff:	cc                   	int3
587500:	53                   	push   %ebx
587501:	56                   	push   %esi
587502:	8b 74 24 18          	mov    0x18(%esp),%esi
587506:	57                   	push   %edi
587507:	56                   	push   %esi
587508:	83 cf ff             	or     $0xffffffff,%edi
58750b:	e8 90 09 f5 ff       	call   0x4d7ea0
587510:	56                   	push   %esi
587511:	e8 aa 08 f5 ff       	call   0x4d7dc0
587516:	8b d8                	mov    %eax,%ebx
587518:	83 c4 08             	add    $0x8,%esp
58751b:	85 db                	test   %ebx,%ebx
58751d:	74 2c                	je     0x58754b
58751f:	ff 74 24 18          	push   0x18(%esp)
587523:	53                   	push   %ebx
587524:	e8 07 bf f2 ff       	call   0x4b3430
587529:	83 c4 08             	add    $0x8,%esp
58752c:	85 c0                	test   %eax,%eax
58752e:	74 1b                	je     0x58754b
587530:	56                   	push   %esi
587531:	ff 74 24 18          	push   0x18(%esp)
587535:	53                   	push   %ebx
587536:	6a 00                	push   $0x0
587538:	ff 74 24 20          	push   0x20(%esp)
58753c:	e8 5f 8e fe ff       	call   0x5703a0
587541:	83 c4 14             	add    $0x14,%esp
587544:	85 c0                	test   %eax,%eax
587546:	0f 45 7c 24 18       	cmovne 0x18(%esp),%edi
58754b:	56                   	push   %esi
58754c:	e8 ff 07 f5 ff       	call   0x4d7d50
587551:	83 c4 04             	add    $0x4,%esp
587554:	8b c7                	mov    %edi,%eax
587556:	5f                   	pop    %edi
587557:	5e                   	pop    %esi
587558:	5b                   	pop    %ebx
587559:	c3                   	ret
58755a:	cc                   	int3
58755b:	cc                   	int3
58755c:	cc                   	int3
58755d:	cc                   	int3
58755e:	cc                   	int3
58755f:	cc                   	int3
587560:	53                   	push   %ebx
587561:	8b 5c 24 0c          	mov    0xc(%esp),%ebx
587565:	57                   	push   %edi
587566:	33 ff                	xor    %edi,%edi
587568:	85 db                	test   %ebx,%ebx
58756a:	75 05                	jne    0x587571
58756c:	5f                   	pop    %edi
58756d:	33 c0                	xor    %eax,%eax
58756f:	5b                   	pop    %ebx
587570:	c3                   	ret
587571:	f7 43 04 00 01 00 00 	testl  $0x100,0x4(%ebx)
587578:	55                   	push   %ebp
587579:	8b 6c 24 10          	mov    0x10(%esp),%ebp
58757d:	56                   	push   %esi
58757e:	74 1b                	je     0x58759b
587580:	6a 01                	push   $0x1
587582:	68 2c a8 6a 00       	push   $0x6aa82c
587587:	55                   	push   %ebp
587588:	e8 c3 b5 f2 ff       	call   0x4b2b50
58758d:	83 c4 0c             	add    $0xc,%esp
587590:	83 f8 01             	cmp    $0x1,%eax
587593:	0f 85 b8 00 00 00    	jne    0x587651
587599:	8b f8                	mov    %eax,%edi
58759b:	8b 03                	mov    (%ebx),%eax
58759d:	85 c0                	test   %eax,%eax
58759f:	75 22                	jne    0x5875c3
5875a1:	6a 02                	push   $0x2
5875a3:	68 d8 37 6c 00       	push   $0x6c37d8
5875a8:	55                   	push   %ebp
5875a9:	e8 a2 b5 f2 ff       	call   0x4b2b50
5875ae:	83 c4 0c             	add    $0xc,%esp
5875b1:	83 f8 02             	cmp    $0x2,%eax
5875b4:	0f 85 97 00 00 00    	jne    0x587651
5875ba:	03 f8                	add    %eax,%edi
5875bc:	5e                   	pop    %esi
5875bd:	5d                   	pop    %ebp
5875be:	8b c7                	mov    %edi,%eax
5875c0:	5f                   	pop    %edi
5875c1:	5b                   	pop    %ebx
5875c2:	c3                   	ret
5875c3:	33 f6                	xor    %esi,%esi
5875c5:	85 c0                	test   %eax,%eax
5875c7:	7e f3                	jle    0x5875bc
5875c9:	0f 1f 80 00 00 00 00 	nopl   0x0(%eax)
5875d0:	85 f6                	test   %esi,%esi
5875d2:	74 33                	je     0x587607
5875d4:	b8 eb a0 0e ea       	mov    $0xea0ea0eb,%eax
5875d9:	8b ce                	mov    %esi,%ecx
5875db:	f7 ee                	imul   %esi
5875dd:	03 d6                	add    %esi,%edx
5875df:	c1 fa 05             	sar    $0x5,%edx
5875e2:	8b c2                	mov    %edx,%eax
5875e4:	c1 e8 1f             	shr    $0x1f,%eax
5875e7:	03 c2                	add    %edx,%eax
5875e9:	6b c0 23             	imul   $0x23,%eax,%eax
5875ec:	2b c8                	sub    %eax,%ecx
5875ee:	75 17                	jne    0x587607
5875f0:	6a 02                	push   $0x2
5875f2:	68 dc 37 6c 00       	push   $0x6c37dc
5875f7:	55                   	push   %ebp
5875f8:	e8 53 b5 f2 ff       	call   0x4b2b50
5875fd:	83 c4 0c             	add    $0xc,%esp
587600:	83 f8 02             	cmp    $0x2,%eax
587603:	75 4c                	jne    0x587651
587605:	03 f8                	add    %eax,%edi
587607:	8b 53 08             	mov    0x8(%ebx),%edx
58760a:	8b 0d 60 42 72 00    	mov    0x724260,%ecx
587610:	6a 02                	push   $0x2
587612:	0f b6 04 32          	movzbl (%edx,%esi,1),%eax
587616:	c1 e8 04             	shr    $0x4,%eax
587619:	0f b6 04 08          	movzbl (%eax,%ecx,1),%eax
58761d:	88 44 24 1c          	mov    %al,0x1c(%esp)
587621:	0f b6 04 32          	movzbl (%edx,%esi,1),%eax
587625:	83 e0 0f             	and    $0xf,%eax
587628:	0f b6 04 08          	movzbl (%eax,%ecx,1),%eax
58762c:	88 44 24 1d          	mov    %al,0x1d(%esp)
587630:	8d 44 24 1c          	lea    0x1c(%esp),%eax
587634:	50                   	push   %eax
587635:	55                   	push   %ebp
587636:	e8 15 b5 f2 ff       	call   0x4b2b50
58763b:	83 c4 0c             	add    $0xc,%esp
58763e:	83 f8 02             	cmp    $0x2,%eax
587641:	75 0e                	jne    0x587651
587643:	46                   	inc    %esi
587644:	03 f8                	add    %eax,%edi
587646:	3b 33                	cmp    (%ebx),%esi
587648:	7c 86                	jl     0x5875d0
58764a:	5e                   	pop    %esi
58764b:	5d                   	pop    %ebp
58764c:	8b c7                	mov    %edi,%eax
58764e:	5f                   	pop    %edi
58764f:	5b                   	pop    %ebx
587650:	c3                   	ret
587651:	5e                   	pop    %esi
587652:	5d                   	pop    %ebp
587653:	5f                   	pop    %edi
587654:	83 c8 ff             	or     $0xffffffff,%eax
587657:	5b                   	pop    %ebx
587658:	c3                   	ret
587659:	cc                   	int3
58765a:	cc                   	int3
58765b:	cc                   	int3
58765c:	cc                   	int3
58765d:	cc                   	int3
58765e:	cc                   	int3
58765f:	cc                   	int3
587660:	56                   	push   %esi
587661:	8b 74 24 10          	mov    0x10(%esp),%esi
587665:	85 f6                	test   %esi,%esi
587667:	75 05                	jne    0x58766e
587669:	8d 46 01             	lea    0x1(%esi),%eax
58766c:	5e                   	pop    %esi
58766d:	c3                   	ret
58766e:	83 7e 0c 00          	cmpl   $0x0,0xc(%esi)
587672:	b8 ad 57 6e 00       	mov    $0x6e57ad,%eax
587677:	53                   	push   %ebx
587678:	57                   	push   %edi
587679:	8b 7c 24 10          	mov    0x10(%esp),%edi
58767d:	bb 2c a8 6a 00       	mov    $0x6aa82c,%ebx
587682:	68 80 00 00 00       	push   $0x80
587687:	ff 74 24 24          	push   0x24(%esp)
58768b:	0f 44 d8             	cmove  %eax,%ebx
58768e:	57                   	push   %edi
58768f:	e8 ac b0 f2 ff       	call   0x4b2740
587694:	83 c4 0c             	add    $0xc,%esp
587697:	85 c0                	test   %eax,%eax
587699:	75 04                	jne    0x58769f
58769b:	5f                   	pop    %edi
58769c:	5b                   	pop    %ebx
58769d:	5e                   	pop    %esi
58769e:	c3                   	ret
58769f:	83 7e 04 00          	cmpl   $0x0,0x4(%esi)
5876a3:	75 1f                	jne    0x5876c4
5876a5:	ff 74 24 14          	push   0x14(%esp)
5876a9:	68 e0 37 6c 00       	push   $0x6c37e0
5876ae:	57                   	push   %edi
5876af:	e8 1c 78 f2 ff       	call   0x4aeed0
5876b4:	83 c4 0c             	add    $0xc,%esp
5876b7:	33 c9                	xor    %ecx,%ecx
5876b9:	85 c0                	test   %eax,%eax
5876bb:	0f 9f c1             	setg   %cl
5876be:	5f                   	pop    %edi
5876bf:	5b                   	pop    %ebx
5876c0:	8b c1                	mov    %ecx,%eax
5876c2:	5e                   	pop    %esi
5876c3:	c3                   	ret
5876c4:	55                   	push   %ebp
5876c5:	56                   	push   %esi
5876c6:	e8 a5 bc f2 ff       	call   0x4b3370
5876cb:	83 c0 07             	add    $0x7,%eax
5876ce:	83 c4 04             	add    $0x4,%esp
5876d1:	99                   	cltd
5876d2:	83 e2 07             	and    $0x7,%edx
5876d5:	03 c2                	add    %edx,%eax
5876d7:	c1 f8 03             	sar    $0x3,%eax
5876da:	83 f8 04             	cmp    $0x4,%eax
5876dd:	7f 29                	jg     0x587708
5876df:	8b 06                	mov    (%esi),%eax
5876e1:	8b 00                	mov    (%eax),%eax
5876e3:	50                   	push   %eax
5876e4:	53                   	push   %ebx
5876e5:	50                   	push   %eax
5876e6:	53                   	push   %ebx
5876e7:	ff 74 24 28          	push   0x28(%esp)
5876eb:	68 e8 37 6c 00       	push   $0x6c37e8
5876f0:	57                   	push   %edi
5876f1:	e8 da 77 f2 ff       	call   0x4aeed0
5876f6:	83 c4 1c             	add    $0x1c,%esp