518310:	5b                   	pop    %ebx
518311:	8b e5                	mov    %ebp,%esp
518313:	5d                   	pop    %ebp
518314:	c3                   	ret
518315:	57                   	push   %edi
518316:	56                   	push   %esi
518317:	e8 34 f3 fe ff       	call   0x507650
51831c:	83 c4 08             	add    $0x8,%esp
51831f:	85 c0                	test   %eax,%eax
518321:	0f 85 10 01 00 00    	jne    0x518437
518327:	8b 46 74             	mov    0x74(%esi),%eax
51832a:	8b ce                	mov    %esi,%ecx
51832c:	85 c0                	test   %eax,%eax
51832e:	0f 45 c8             	cmovne %eax,%ecx
518331:	c6 41 15 01          	movb   $0x1,0x15(%ecx)
518335:	ff 77 48             	push   0x48(%edi)
518338:	53                   	push   %ebx
518339:	e8 22 17 02 00       	call   0x539a60
51833e:	6a 00                	push   $0x0
518340:	6a 50                	push   $0x50
518342:	53                   	push   %ebx
518343:	89 45 f4             	mov    %eax,-0xc(%ebp)
518346:	e8 d5 91 00 00       	call   0x521520
51834b:	8b f8                	mov    %eax,%edi
51834d:	83 c4 14             	add    $0x14,%esp
518350:	85 ff                	test   %edi,%edi
518352:	0f 84 df 00 00 00    	je     0x518437
518358:	89 be e4 00 00 00    	mov    %edi,0xe4(%esi)
51835e:	8b 75 f8             	mov    -0x8(%ebp),%esi
518361:	c7 47 20 01 00 00 00 	movl   $0x1,0x20(%edi)
518368:	6a 00                	push   $0x0
51836a:	0f b7 4e 2a          	movzwl 0x2a(%esi),%ecx
51836e:	0f bf c1             	movswl %cx,%eax
518371:	48                   	dec    %eax
518372:	66 89 4f 2a          	mov    %cx,0x2a(%edi)
518376:	99                   	cltd
518377:	83 e2 07             	and    $0x7,%edx
51837a:	03 c2                	add    %edx,%eax
51837c:	c1 f8 03             	sar    $0x3,%eax
51837f:	40                   	inc    %eax
518380:	8d 04 80             	lea    (%eax,%eax,4),%eax
518383:	c1 e0 05             	shl    $0x5,%eax
518386:	50                   	push   %eax
518387:	53                   	push   %ebx
518388:	e8 93 91 00 00       	call   0x521520
51838d:	89 47 04             	mov    %eax,0x4(%edi)
518390:	ff 36                	push   (%esi)
518392:	68 4c 99 6b 00       	push   $0x6b994c
518397:	53                   	push   %ebx
518398:	e8 a3 8b 01 00       	call   0x530f40
51839d:	8b 4f 04             	mov    0x4(%edi),%ecx
5183a0:	83 c4 18             	add    $0x18,%esp
5183a3:	89 07                	mov    %eax,(%edi)
5183a5:	85 c9                	test   %ecx,%ecx
5183a7:	0f 84 8a 00 00 00    	je     0x518437
5183ad:	85 c0                	test   %eax,%eax
5183af:	0f 84 82 00 00 00    	je     0x518437
5183b5:	0f bf 47 2a          	movswl 0x2a(%edi),%eax
5183b9:	8d 04 80             	lea    (%eax,%eax,4),%eax
5183bc:	c1 e0 02             	shl    $0x2,%eax
5183bf:	50                   	push   %eax
5183c0:	ff 76 04             	push   0x4(%esi)
5183c3:	51                   	push   %ecx
5183c4:	e8 37 ab 0c 00       	call   0x5e2f00
5183c9:	33 c0                	xor    %eax,%eax
5183cb:	c7 45 08 00 00 00 00 	movl   $0x0,0x8(%ebp)
5183d2:	83 c4 0c             	add    $0xc,%esp
5183d5:	66 3b 47 2a          	cmp    0x2a(%edi),%ax
5183d9:	7d 40                	jge    0x51841b
5183db:	33 c9                	xor    %ecx,%ecx
5183dd:	89 4d fc             	mov    %ecx,-0x4(%ebp)
5183e0:	8b 77 04             	mov    0x4(%edi),%esi
5183e3:	03 f1                	add    %ecx,%esi
5183e5:	ff 36                	push   (%esi)
5183e7:	53                   	push   %ebx
5183e8:	e8 c3 92 00 00       	call   0x5216b0
5183ed:	8b 55 08             	mov    0x8(%ebp),%edx
5183f0:	83 c4 08             	add    $0x8,%esp
5183f3:	8b 4d fc             	mov    -0x4(%ebp),%ecx
5183f6:	42                   	inc    %edx
5183f7:	89 06                	mov    %eax,(%esi)
5183f9:	83 c1 14             	add    $0x14,%ecx
5183fc:	c7 46 08 00 00 00 00 	movl   $0x0,0x8(%esi)
518403:	c7 46 04 00 00 00 00 	movl   $0x0,0x4(%esi)
51840a:	0f bf 47 2a          	movswl 0x2a(%edi),%eax
51840e:	89 55 08             	mov    %edx,0x8(%ebp)
518411:	89 4d fc             	mov    %ecx,-0x4(%ebp)
518414:	3b d0                	cmp    %eax,%edx
518416:	7c c8                	jl     0x5183e0
518418:	8b 75 f8             	mov    -0x8(%ebp),%esi
51841b:	8b 43 10             	mov    0x10(%ebx),%eax
51841e:	8b 4d f4             	mov    -0xc(%ebp),%ecx
518421:	03 c9                	add    %ecx,%ecx
518423:	8b 44 c8 0c          	mov    0xc(%eax,%ecx,8),%eax
518427:	89 47 48             	mov    %eax,0x48(%edi)
51842a:	8b 46 34             	mov    0x34(%esi),%eax
51842d:	89 47 34             	mov    %eax,0x34(%edi)
518430:	c7 47 20 01 00 00 00 	movl   $0x1,0x20(%edi)
518437:	5f                   	pop    %edi
518438:	ff 75 0c             	push   0xc(%ebp)
51843b:	53                   	push   %ebx
51843c:	e8 2f 49 02 00       	call   0x53cd70
518441:	83 c4 08             	add    $0x8,%esp
518444:	5e                   	pop    %esi
518445:	5b                   	pop    %ebx
518446:	8b e5                	mov    %ebp,%esp
518448:	5d                   	pop    %ebp
518449:	c3                   	ret
51844a:	cc                   	int3
51844b:	cc                   	int3
51844c:	cc                   	int3
51844d:	cc                   	int3
51844e:	cc                   	int3
51844f:	cc                   	int3
518450:	55                   	push   %ebp
518451:	8b ec                	mov    %esp,%ebp
518453:	83 ec 1c             	sub    $0x1c,%esp
518456:	a1 d4 89 72 00       	mov    0x7289d4,%eax
51845b:	33 c5                	xor    %ebp,%eax
51845d:	89 45 fc             	mov    %eax,-0x4(%ebp)
518460:	8b 4d 0c             	mov    0xc(%ebp),%ecx
518463:	57                   	push   %edi
518464:	8b 7d 08             	mov    0x8(%ebp),%edi
518467:	89 4d f0             	mov    %ecx,-0x10(%ebp)
51846a:	83 7f 24 00          	cmpl   $0x0,0x24(%edi)
51846e:	8b 17                	mov    (%edi),%edx
518470:	89 55 f4             	mov    %edx,-0xc(%ebp)
518473:	0f 85 d0 02 00 00    	jne    0x518749
518479:	80 7a 51 00          	cmpb   $0x0,0x51(%edx)
51847d:	0f 85 c6 02 00 00    	jne    0x518749
518483:	53                   	push   %ebx
518484:	56                   	push   %esi
518485:	8b b7 e4 00 00 00    	mov    0xe4(%edi),%esi
51848b:	bb c0 bd f0 ff       	mov    $0xfff0bdc0,%ebx
518490:	89 75 e8             	mov    %esi,-0x18(%ebp)
518493:	8b 4e 48             	mov    0x48(%esi),%ecx
518496:	85 c9                	test   %ecx,%ecx
518498:	74 14                	je     0x5184ae
51849a:	8b 42 10             	mov    0x10(%edx),%eax
51849d:	33 db                	xor    %ebx,%ebx
51849f:	83 c0 0c             	add    $0xc,%eax
5184a2:	39 08                	cmp    %ecx,(%eax)
5184a4:	74 08                	je     0x5184ae
5184a6:	8d 40 10             	lea    0x10(%eax),%eax
5184a9:	43                   	inc    %ebx
5184aa:	39 08                	cmp    %ecx,(%eax)
5184ac:	75 f8                	jne    0x5184a6
5184ae:	8b 42 10             	mov    0x10(%edx),%eax
5184b1:	8b cb                	mov    %ebx,%ecx
5184b3:	03 c9                	add    %ecx,%ecx
5184b5:	8b 04 c8             	mov    (%eax,%ecx,8),%eax
5184b8:	89 45 ec             	mov    %eax,-0x14(%ebp)
5184bb:	8b 06                	mov    (%esi),%eax
5184bd:	ff 75 ec             	push   -0x14(%ebp)
5184c0:	83 c0 10             	add    $0x10,%eax
5184c3:	89 45 e4             	mov    %eax,-0x1c(%ebp)
5184c6:	0f bf 46 2a          	movswl 0x2a(%esi),%eax
5184ca:	ff 75 e4             	push   -0x1c(%ebp)
5184cd:	52                   	push   %edx
5184ce:	8d 0c 80             	lea    (%eax,%eax,4),%ecx
5184d1:	8b 46 04             	mov    0x4(%esi),%eax
5184d4:	8d 04 88             	lea    (%eax,%ecx,4),%eax
5184d7:	83 c0 ec             	add    $0xffffffec,%eax
5184da:	89 45 f8             	mov    %eax,-0x8(%ebp)
5184dd:	8b 70 04             	mov    0x4(%eax),%esi
5184e0:	e8 db 04 01 00       	call   0x5289c0
5184e5:	6a 00                	push   $0x0
5184e7:	ff 30                	push   (%eax)
5184e9:	ff 75 ec             	push   -0x14(%ebp)
5184ec:	6a 1a                	push   $0x1a
5184ee:	57                   	push   %edi
5184ef:	e8 ac 12 00 00       	call   0x5197a0
5184f4:	83 c4 20             	add    $0x20,%esp
5184f7:	85 c0                	test   %eax,%eax
5184f9:	0f 85 48 02 00 00    	jne    0x518747
5184ff:	8b 55 f8             	mov    -0x8(%ebp),%edx
518502:	0f b7 42 10          	movzwl 0x10(%edx),%eax
518506:	a8 01                	test   $0x1,%al
518508:	74 1f                	je     0x518529
51850a:	68 98 97 6b 00       	push   $0x6b9798
51850f:	57                   	push   %edi
518510:	e8 4b ad 00 00       	call   0x523260
518515:	83 c4 08             	add    $0x8,%esp
518518:	5e                   	pop    %esi
518519:	5b                   	pop    %ebx
51851a:	5f                   	pop    %edi
51851b:	8b 4d fc             	mov    -0x4(%ebp),%ecx
51851e:	33 cd                	xor    %ebp,%ecx
518520:	e8 b5 8f 0c 00       	call   0x5e14da
518525:	8b e5                	mov    %ebp,%esp
518527:	5d                   	pop    %ebp
518528:	c3                   	ret
518529:	8b 4d e8             	mov    -0x18(%ebp),%ecx
51852c:	83 79 08 00          	cmpl   $0x0,0x8(%ecx)
518530:	74 1f                	je     0x518551
518532:	68 b8 97 6b 00       	push   $0x6b97b8
518537:	57                   	push   %edi
518538:	e8 23 ad 00 00       	call   0x523260
51853d:	83 c4 08             	add    $0x8,%esp
518540:	5e                   	pop    %esi
518541:	5b                   	pop    %ebx
518542:	5f                   	pop    %edi
518543:	8b 4d fc             	mov    -0x4(%ebp),%ecx
518546:	33 cd                	xor    %ebp,%ecx
518548:	e8 8d 8f 0c 00       	call   0x5e14da
51854d:	8b e5                	mov    %ebp,%esp
51854f:	5d                   	pop    %ebp
518550:	c3                   	ret
518551:	a8 60                	test   $0x60,%al
518553:	0f 85 d2 00 00 00    	jne    0x51862b
518559:	85 f6                	test   %esi,%esi
51855b:	74 11                	je     0x51856e
51855d:	8b 46 0c             	mov    0xc(%esi),%eax
518560:	c7 45 f8 00 00 00 00 	movl   $0x0,-0x8(%ebp)
518567:	80 38 77             	cmpb   $0x77,(%eax)
51856a:	0f 44 75 f8          	cmove  -0x8(%ebp),%esi
51856e:	8b 45 f4             	mov    -0xc(%ebp),%eax
518571:	8b 40 20             	mov    0x20(%eax),%eax
518574:	25 00 40 00 00       	and    $0x4000,%eax
518579:	83 c8 00             	or     $0x0,%eax
51857c:	74 29                	je     0x5185a7
51857e:	83 79 10 00          	cmpl   $0x0,0x10(%ecx)
518582:	74 23                	je     0x5185a7
518584:	85 f6                	test   %esi,%esi
518586:	74 1f                	je     0x5185a7
518588:	68 d4 97 6b 00       	push   $0x6b97d4
51858d:	57                   	push   %edi
51858e:	e8 cd ac 00 00       	call   0x523260
518593:	83 c4 08             	add    $0x8,%esp
518596:	5e                   	pop    %esi
518597:	5b                   	pop    %ebx
518598:	5f                   	pop    %edi
518599:	8b 4d fc             	mov    -0x4(%ebp),%ecx
51859c:	33 cd                	xor    %ebp,%ecx
51859e:	e8 37 8f 0c 00       	call   0x5e14da
5185a3:	8b e5                	mov    %ebp,%esp
5185a5:	5d                   	pop    %ebp
5185a6:	c3                   	ret
5185a7:	80 7a 0c 00          	cmpb   $0x0,0xc(%edx)
5185ab:	74 23                	je     0x5185d0
5185ad:	85 f6                	test   %esi,%esi
5185af:	75 23                	jne    0x5185d4
5185b1:	68 10 98 6b 00       	push   $0x6b9810
5185b6:	57                   	push   %edi
5185b7:	e8 a4 ac 00 00       	call   0x523260
5185bc:	83 c4 08             	add    $0x8,%esp
5185bf:	5e                   	pop    %esi
5185c0:	5b                   	pop    %ebx
5185c1:	5f                   	pop    %edi
5185c2:	8b 4d fc             	mov    -0x4(%ebp),%ecx
5185c5:	33 cd                	xor    %ebp,%ecx
5185c7:	e8 0e 8f 0c 00       	call   0x5e14da
5185cc:	8b e5                	mov    %ebp,%esp
5185ce:	5d                   	pop    %ebp
5185cf:	c3                   	ret
5185d0:	85 f6                	test   %esi,%esi
5185d2:	74 7a                	je     0x51864e
5185d4:	6a 00                	push   $0x0
5185d6:	8d 45 f8             	lea    -0x8(%ebp),%eax
5185d9:	c7 45 f8 00 00 00 00 	movl   $0x0,-0x8(%ebp)
5185e0:	50                   	push   %eax
5185e1:	6a 41                	push   $0x41
5185e3:	6a 01                	push   $0x1
5185e5:	56                   	push   %esi
5185e6:	8b 75 f4             	mov    -0xc(%ebp),%esi
5185e9:	56                   	push   %esi
5185ea:	e8 b1 11 04 00       	call   0x5597a0
5185ef:	83 c4 18             	add    $0x18,%esp
5185f2:	85 c0                	test   %eax,%eax
5185f4:	0f 85 4d 01 00 00    	jne    0x518747
5185fa:	8b 45 f8             	mov    -0x8(%ebp),%eax
5185fd:	85 c0                	test   %eax,%eax
5185ff:	75 1f                	jne    0x518620
518601:	68 48 98 6b 00       	push   $0x6b9848
518606:	57                   	push   %edi
518607:	e8 54 ac 00 00       	call   0x523260
51860c:	83 c4 08             	add    $0x8,%esp
51860f:	5e                   	pop    %esi
518610:	5b                   	pop    %ebx
518611:	5f                   	pop    %edi
518612:	8b 4d fc             	mov    -0x4(%ebp),%ecx
518615:	33 cd                	xor    %ebp,%ecx
518617:	e8 be 8e 0c 00       	call   0x5e14da
51861c:	8b e5                	mov    %ebp,%esp
51861e:	5d                   	pop    %ebp
51861f:	c3                   	ret
518620:	50                   	push   %eax
518621:	e8 aa a4 fc ff       	call   0x4e2ad0
518626:	83 c4 04             	add    $0x4,%esp
518629:	eb 26                	jmp    0x518651
51862b:	a8 40                	test   $0x40,%al
51862d:	74 1f                	je     0x51864e
51862f:	68 78 98 6b 00       	push   $0x6b9878
518634:	57                   	push   %edi
518635:	e8 26 ac 00 00       	call   0x523260
51863a:	83 c4 08             	add    $0x8,%esp
51863d:	5e                   	pop    %esi
51863e:	5b                   	pop    %ebx
51863f:	5f                   	pop    %edi
518640:	8b 4d fc             	mov    -0x4(%ebp),%ecx
518643:	33 cd                	xor    %ebp,%ecx
518645:	e8 90 8e 0c 00       	call   0x5e14da
51864a:	8b e5                	mov    %ebp,%esp
51864c:	5d                   	pop    %ebp
51864d:	c3                   	ret
51864e:	8b 75 f4             	mov    -0xc(%ebp),%esi
518651:	8b 45 f0             	mov    -0x10(%ebp),%eax
518654:	6a 00                	push   $0x0
518656:	ff 70 04             	push   0x4(%eax)
518659:	ff 30                	push   (%eax)
51865b:	56                   	push   %esi
51865c:	e8 af 90 00 00       	call   0x521710
518661:	8b d0                	mov    %eax,%edx
518663:	83 c4 10             	add    $0x10,%esp
518666:	89 55 f8             	mov    %edx,-0x8(%ebp)
518669:	85 d2                	test   %edx,%edx
51866b:	74 65                	je     0x5186d2
51866d:	8b 4d f0             	mov    -0x10(%ebp),%ecx
518670:	8b 46 18             	mov    0x18(%esi),%eax
518673:	89 45 f0             	mov    %eax,-0x10(%ebp)
518676:	8b 49 04             	mov    0x4(%ecx),%ecx
518679:	49                   	dec    %ecx
51867a:	03 ca                	add    %edx,%ecx
51867c:	3b ca                	cmp    %edx,%ecx
51867e:	76 1a                	jbe    0x51869a
518680:	8a 01                	mov    (%ecx),%al
518682:	3c 3b                	cmp    $0x3b,%al
518684:	74 0c                	je     0x518692
518686:	0f b6 c0             	movzbl %al,%eax
518689:	f6 80 40 1b 6b 00 01 	testb  $0x1,0x6b1b40(%eax)
518690:	74 08                	je     0x51869a
518692:	c6 01 00             	movb   $0x0,(%ecx)
518695:	49                   	dec    %ecx
518696:	3b ca                	cmp    %edx,%ecx
518698:	77 e6                	ja     0x518680
51869a:	8b 4d e8             	mov    -0x18(%ebp),%ecx
51869d:	83 4e 18 02          	orl    $0x2,0x18(%esi)
5186a1:	ff 75 e4             	push   -0x1c(%ebp)
5186a4:	8b 49 34             	mov    0x34(%ecx),%ecx
5186a7:	8d 41 01             	lea    0x1(%ecx),%eax
5186aa:	50                   	push   %eax
5186ab:	52                   	push   %edx
5186ac:	51                   	push   %ecx
5186ad:	68 24 8a 6b 00       	push   $0x6b8a24
5186b2:	ff 75 ec             	push   -0x14(%ebp)
5186b5:	68 98 98 6b 00       	push   $0x6b9898
5186ba:	57                   	push   %edi
5186bb:	e8 e0 8f 01 00       	call   0x5316a0
5186c0:	ff 75 f8             	push   -0x8(%ebp)
5186c3:	56                   	push   %esi