5203d7:	3d ff 00 00 00       	cmp    $0xff,%eax
5203dc:	0f 8f 56 01 00 00    	jg     0x520538
5203e2:	56                   	push   %esi
5203e3:	8b 75 14             	mov    0x14(%ebp),%esi
5203e6:	8b c6                	mov    %esi,%eax
5203e8:	25 00 08 38 00       	and    $0x380800,%eax
5203ed:	83 e6 07             	and    $0x7,%esi
5203f0:	35 00 00 20 00       	xor    $0x200000,%eax
5203f5:	89 45 0c             	mov    %eax,0xc(%ebp)
5203f8:	57                   	push   %edi
5203f9:	8b 7d 08             	mov    0x8(%ebp),%edi
5203fc:	83 fe 04             	cmp    $0x4,%esi
5203ff:	75 07                	jne    0x520408
520401:	be 02 00 00 00       	mov    $0x2,%esi
520406:	eb 6a                	jmp    0x520472
520408:	83 fe 05             	cmp    $0x5,%esi
52040b:	75 65                	jne    0x520472
52040d:	ff 75 30             	push   0x30(%ebp)
520410:	8b 75 24             	mov    0x24(%ebp),%esi
520413:	83 c8 01             	or     $0x1,%eax
520416:	ff 75 2c             	push   0x2c(%ebp)
520419:	35 00 00 20 00       	xor    $0x200000,%eax
52041e:	ff 75 28             	push   0x28(%ebp)
520421:	56                   	push   %esi
520422:	ff 75 20             	push   0x20(%ebp)
520425:	ff 75 1c             	push   0x1c(%ebp)
520428:	ff 75 18             	push   0x18(%ebp)
52042b:	50                   	push   %eax
52042c:	ff 75 10             	push   0x10(%ebp)
52042f:	53                   	push   %ebx
520430:	57                   	push   %edi
520431:	e8 3a ff ff ff       	call   0x520370
520436:	83 c4 2c             	add    $0x2c,%esp
520439:	85 c0                	test   %eax,%eax
52043b:	75 79                	jne    0x5204b6
52043d:	ff 75 30             	push   0x30(%ebp)
520440:	8b 45 0c             	mov    0xc(%ebp),%eax
520443:	ff 75 2c             	push   0x2c(%ebp)
520446:	83 c8 02             	or     $0x2,%eax
520449:	ff 75 28             	push   0x28(%ebp)
52044c:	35 00 00 20 00       	xor    $0x200000,%eax
520451:	56                   	push   %esi
520452:	ff 75 20             	push   0x20(%ebp)
520455:	ff 75 1c             	push   0x1c(%ebp)
520458:	ff 75 18             	push   0x18(%ebp)
52045b:	50                   	push   %eax
52045c:	ff 75 10             	push   0x10(%ebp)
52045f:	53                   	push   %ebx
520460:	57                   	push   %edi
520461:	e8 0a ff ff ff       	call   0x520370
520466:	83 c4 2c             	add    $0x2c,%esp
520469:	85 c0                	test   %eax,%eax
52046b:	75 49                	jne    0x5204b6
52046d:	be 03 00 00 00       	mov    $0x3,%esi
520472:	6a 00                	push   $0x0
520474:	56                   	push   %esi
520475:	ff 75 10             	push   0x10(%ebp)
520478:	53                   	push   %ebx
520479:	57                   	push   %edi
52047a:	e8 a1 7a 00 00       	call   0x527f20
52047f:	83 c4 14             	add    $0x14,%esp
520482:	85 c0                	test   %eax,%eax
520484:	74 40                	je     0x5204c6
520486:	8b 48 04             	mov    0x4(%eax),%ecx
520489:	83 e1 03             	and    $0x3,%ecx
52048c:	3b ce                	cmp    %esi,%ecx
52048e:	75 36                	jne    0x5204c6
520490:	0f be 00             	movsbl (%eax),%eax
520493:	3b 45 10             	cmp    0x10(%ebp),%eax
520496:	75 2e                	jne    0x5204c6
520498:	83 bf b0 00 00 00 00 	cmpl   $0x0,0xb0(%edi)
52049f:	74 1a                	je     0x5204bb
5204a1:	68 34 c3 6b 00       	push   $0x6bc334
5204a6:	6a 05                	push   $0x5
5204a8:	57                   	push   %edi
5204a9:	e8 22 2e 00 00       	call   0x5232d0
5204ae:	83 c4 0c             	add    $0xc,%esp
5204b1:	b8 05 00 00 00       	mov    $0x5,%eax
5204b6:	5f                   	pop    %edi
5204b7:	5e                   	pop    %esi
5204b8:	5b                   	pop    %ebx
5204b9:	5d                   	pop    %ebp
5204ba:	c3                   	ret
5204bb:	6a 00                	push   $0x0
5204bd:	57                   	push   %edi
5204be:	e8 cd 2f 00 00       	call   0x523490
5204c3:	83 c4 08             	add    $0x8,%esp
5204c6:	6a 01                	push   $0x1
5204c8:	56                   	push   %esi
5204c9:	ff 75 10             	push   0x10(%ebp)
5204cc:	53                   	push   %ebx
5204cd:	57                   	push   %edi
5204ce:	e8 4d 7a 00 00       	call   0x527f20
5204d3:	8b f0                	mov    %eax,%esi
5204d5:	83 c4 14             	add    $0x14,%esp
5204d8:	85 f6                	test   %esi,%esi
5204da:	75 08                	jne    0x5204e4
5204dc:	5f                   	pop    %edi
5204dd:	8d 46 07             	lea    0x7(%esi),%eax
5204e0:	5e                   	pop    %esi
5204e1:	5b                   	pop    %ebx
5204e2:	5d                   	pop    %ebp
5204e3:	c3                   	ret
5204e4:	56                   	push   %esi
5204e5:	57                   	push   %edi
5204e6:	e8 f5 3e fe ff       	call   0x5043e0
5204eb:	8b 45 30             	mov    0x30(%ebp),%eax
5204ee:	83 c4 08             	add    $0x8,%esp
5204f1:	85 c0                	test   %eax,%eax
5204f3:	74 02                	je     0x5204f7
5204f5:	ff 00                	incl   (%eax)
5204f7:	8b 4d 20             	mov    0x20(%ebp),%ecx
5204fa:	89 46 24             	mov    %eax,0x24(%esi)
5204fd:	8b 46 04             	mov    0x4(%esi),%eax
520500:	83 e0 03             	and    $0x3,%eax
520503:	0b 45 0c             	or     0xc(%ebp),%eax
520506:	89 46 04             	mov    %eax,0x4(%esi)
520509:	8b 45 1c             	mov    0x1c(%ebp),%eax
52050c:	85 c0                	test   %eax,%eax
52050e:	5f                   	pop    %edi
52050f:	0f 45 c8             	cmovne %eax,%ecx
520512:	8b 45 24             	mov    0x24(%ebp),%eax
520515:	89 46 14             	mov    %eax,0x14(%esi)
520518:	8b 45 28             	mov    0x28(%ebp),%eax
52051b:	89 46 18             	mov    %eax,0x18(%esi)
52051e:	8b 45 2c             	mov    0x2c(%ebp),%eax
520521:	89 46 1c             	mov    %eax,0x1c(%esi)
520524:	8b 45 18             	mov    0x18(%ebp),%eax
520527:	89 46 08             	mov    %eax,0x8(%esi)
52052a:	8b 45 10             	mov    0x10(%ebp),%eax
52052d:	88 06                	mov    %al,(%esi)
52052f:	33 c0                	xor    %eax,%eax
520531:	89 4e 10             	mov    %ecx,0x10(%esi)
520534:	5e                   	pop    %esi
520535:	5b                   	pop    %ebx
520536:	5d                   	pop    %ebp
520537:	c3                   	ret
520538:	68 fc c4 6b 00       	push   $0x6bc4fc
52053d:	68 2e 74 02 00       	push   $0x2742e
520542:	68 a8 c4 6b 00       	push   $0x6bc4a8
520547:	68 78 c4 6b 00       	push   $0x6bc478
52054c:	6a 15                	push   $0x15
52054e:	e8 8d fa fb ff       	call   0x4dffe0
520553:	83 c4 14             	add    $0x14,%esp
520556:	b8 15 00 00 00       	mov    $0x15,%eax
52055b:	5b                   	pop    %ebx
52055c:	5d                   	pop    %ebp
52055d:	c3                   	ret
52055e:	cc                   	int3
52055f:	cc                   	int3
520560:	55                   	push   %ebp
520561:	8b ec                	mov    %esp,%ebp
520563:	83 ec 64             	sub    $0x64,%esp
520566:	a1 d4 89 72 00       	mov    0x7289d4,%eax
52056b:	33 c5                	xor    %ebp,%eax
52056d:	89 45 fc             	mov    %eax,-0x4(%ebp)
520570:	8b 45 14             	mov    0x14(%ebp),%eax
520573:	8b 4d 1c             	mov    0x1c(%ebp),%ecx
520576:	53                   	push   %ebx
520577:	8b 5d 0c             	mov    0xc(%ebp),%ebx
52057a:	56                   	push   %esi
52057b:	8b 75 08             	mov    0x8(%ebp),%esi
52057e:	89 45 d4             	mov    %eax,-0x2c(%ebp)
520581:	8b 45 18             	mov    0x18(%ebp),%eax
520584:	89 45 cc             	mov    %eax,-0x34(%ebp)
520587:	8b 45 24             	mov    0x24(%ebp),%eax
52058a:	89 45 a8             	mov    %eax,-0x58(%ebp)
52058d:	8b 06                	mov    (%esi),%eax
52058f:	89 4d b0             	mov    %ecx,-0x50(%ebp)
520592:	33 c9                	xor    %ecx,%ecx
520594:	57                   	push   %edi
520595:	8b 7d 10             	mov    0x10(%ebp),%edi
520598:	89 75 c0             	mov    %esi,-0x40(%ebp)
52059b:	c7 45 b4 00 00 00 00 	movl   $0x0,-0x4c(%ebp)
5205a2:	89 45 dc             	mov    %eax,-0x24(%ebp)
5205a5:	c7 45 ac 00 00 00 00 	movl   $0x0,-0x54(%ebp)
5205ac:	c7 45 d0 00 00 00 00 	movl   $0x0,-0x30(%ebp)
5205b3:	c7 45 c4 00 00 00 00 	movl   $0x0,-0x3c(%ebp)
5205ba:	89 4d b8             	mov    %ecx,-0x48(%ebp)
5205bd:	38 48 51             	cmp    %cl,0x51(%eax)
5205c0:	0f 85 93 0a 00 00    	jne    0x521059
5205c6:	39 4e 24             	cmp    %ecx,0x24(%esi)
5205c9:	0f 8f 8a 0a 00 00    	jg     0x521059
5205cf:	80 be c8 00 00 00 01 	cmpb   $0x1,0xc8(%esi)
5205d6:	75 0a                	jne    0x5205e2
5205d8:	80 7d 30 02          	cmpb   $0x2,0x30(%ebp)
5205dc:	0f 85 77 0a 00 00    	jne    0x521059
5205e2:	56                   	push   %esi
5205e3:	e8 a8 6e 01 00       	call   0x537490
5205e8:	83 c4 04             	add    $0x4,%esp
5205eb:	85 c0                	test   %eax,%eax
5205ed:	0f 85 66 0a 00 00    	jne    0x521059
5205f3:	8b 45 cc             	mov    -0x34(%ebp),%eax
5205f6:	50                   	push   %eax
5205f7:	56                   	push   %esi
5205f8:	e8 83 d3 00 00       	call   0x52d980
5205fd:	83 c4 08             	add    $0x8,%esp
520600:	85 c0                	test   %eax,%eax
520602:	0f 85 51 0a 00 00    	jne    0x521059
520608:	39 45 d4             	cmp    %eax,-0x2c(%ebp)
52060b:	0f 84 d1 00 00 00    	je     0x5206e2
520611:	8d 45 ac             	lea    -0x54(%ebp),%eax
520614:	50                   	push   %eax
520615:	57                   	push   %edi
520616:	53                   	push   %ebx
520617:	56                   	push   %esi
520618:	e8 c3 e0 01 00       	call   0x53e6e0
52061d:	8b d8                	mov    %eax,%ebx
52061f:	83 c4 10             	add    $0x10,%esp
520622:	89 5d c8             	mov    %ebx,-0x38(%ebp)
520625:	85 db                	test   %ebx,%ebx
520627:	0f 88 2c 0a 00 00    	js     0x521059
52062d:	8b 45 dc             	mov    -0x24(%ebp),%eax
520630:	80 b8 a5 00 00 00 00 	cmpb   $0x0,0xa5(%eax)
520637:	75 2f                	jne    0x520668
520639:	ff 75 d4             	push   -0x2c(%ebp)
52063c:	56                   	push   %esi
52063d:	e8 3e cd 01 00       	call   0x53d380
520642:	83 c4 08             	add    $0x8,%esp
520645:	83 7f 04 00          	cmpl   $0x0,0x4(%edi)
520649:	8b 7d dc             	mov    -0x24(%ebp),%edi
52064c:	75 1c                	jne    0x52066a
52064e:	85 c0                	test   %eax,%eax
520650:	74 18                	je     0x52066a
520652:	8b 4f 10             	mov    0x10(%edi),%ecx
520655:	ba 01 00 00 00       	mov    $0x1,%edx
52065a:	8b 40 48             	mov    0x48(%eax),%eax
52065d:	3b 41 1c             	cmp    0x1c(%ecx),%eax
520660:	0f 44 da             	cmove  %edx,%ebx
520663:	89 5d c8             	mov    %ebx,-0x38(%ebp)
520666:	eb 02                	jmp    0x52066a
520668:	8b f8                	mov    %eax,%edi
52066a:	8b 4d ac             	mov    -0x54(%ebp),%ecx
52066d:	8d 45 e4             	lea    -0x1c(%ebp),%eax
520670:	51                   	push   %ecx
520671:	68 e4 a3 6b 00       	push   $0x6ba3e4
520676:	53                   	push   %ebx
520677:	56                   	push   %esi
520678:	50                   	push   %eax
520679:	e8 62 8a 00 00       	call   0x5290e0
52067e:	ff 75 d4             	push   -0x2c(%ebp)
520681:	8d 45 e4             	lea    -0x1c(%ebp),%eax
520684:	50                   	push   %eax
520685:	e8 a6 8b 00 00       	call   0x529230
52068a:	8b 45 d4             	mov    -0x2c(%ebp),%eax
52068d:	83 c0 08             	add    $0x8,%eax
520690:	50                   	push   %eax
520691:	6a 00                	push   $0x0
520693:	56                   	push   %esi
520694:	e8 97 05 01 00       	call   0x530c30
520699:	8b d0                	mov    %eax,%edx
52069b:	83 c4 28             	add    $0x28,%esp
52069e:	89 55 e0             	mov    %edx,-0x20(%ebp)
5206a1:	85 d2                	test   %edx,%edx
5206a3:	0f 84 b0 09 00 00    	je     0x521059
5206a9:	83 fb 01             	cmp    $0x1,%ebx
5206ac:	75 20                	jne    0x5206ce
5206ae:	8b 47 10             	mov    0x10(%edi),%eax
5206b1:	8b 40 1c             	mov    0x1c(%eax),%eax
5206b4:	3b 42 48             	cmp    0x48(%edx),%eax
5206b7:	74 15                	je     0x5206ce
5206b9:	ff 32                	push   (%edx)
5206bb:	68 ec a3 6b 00       	push   $0x6ba3ec
5206c0:	56                   	push   %esi
5206c1:	e8 9a 2b 00 00       	call   0x523260
5206c6:	83 c4 0c             	add    $0xc,%esp
5206c9:	e9 47 09 00 00       	jmp    0x521015
5206ce:	f6 42 24 80          	testb  $0x80,0x24(%edx)
5206d2:	74 36                	je     0x52070a
5206d4:	52                   	push   %edx
5206d5:	e8 f6 6c 01 00       	call   0x5373d0
5206da:	83 c4 04             	add    $0x4,%esp
5206dd:	89 45 b8             	mov    %eax,-0x48(%ebp)
5206e0:	eb 28                	jmp    0x52070a
5206e2:	8b 86 e4 00 00 00    	mov    0xe4(%esi),%eax
5206e8:	89 45 e0             	mov    %eax,-0x20(%ebp)
5206eb:	85 c0                	test   %eax,%eax
5206ed:	0f 84 66 09 00 00    	je     0x521059
5206f3:	ff 70 48             	push   0x48(%eax)
5206f6:	8b 7d dc             	mov    -0x24(%ebp),%edi
5206f9:	57                   	push   %edi
5206fa:	e8 61 93 01 00       	call   0x539a60
5206ff:	8b 55 e0             	mov    -0x20(%ebp),%edx
520702:	8b d8                	mov    %eax,%ebx
520704:	83 c4 08             	add    $0x8,%esp
520707:	89 5d c8             	mov    %ebx,-0x38(%ebp)
52070a:	8b 47 10             	mov    0x10(%edi),%eax
52070d:	8b cb                	mov    %ebx,%ecx
52070f:	8b 3a                	mov    (%edx),%edi
520711:	c1 e1 04             	shl    $0x4,%ecx
520714:	6a 07                	push   $0x7
520716:	03 c1                	add    %ecx,%eax
520718:	89 4d 9c             	mov    %ecx,-0x64(%ebp)
52071b:	68 b0 92 6b 00       	push   $0x6b92b0
520720:	57                   	push   %edi
520721:	89 45 d8             	mov    %eax,-0x28(%ebp)
520724:	e8 37 f4 fb ff       	call   0x4dfb60
520729:	8b 5d dc             	mov    -0x24(%ebp),%ebx
52072c:	83 c4 0c             	add    $0xc,%esp
52072f:	85 c0                	test   %eax,%eax
520731:	75 21                	jne    0x520754
520733:	38 83 a5 00 00 00    	cmp    %al,0xa5(%ebx)
520739:	75 19                	jne    0x520754
52073b:	39 45 d4             	cmp    %eax,-0x2c(%ebp)
52073e:	74 14                	je     0x520754
520740:	57                   	push   %edi
520741:	68 20 a4 6b 00       	push   $0x6ba420
520746:	56                   	push   %esi
520747:	e8 14 2b 00 00       	call   0x523260
52074c:	83 c4 0c             	add    $0xc,%esp
52074f:	e9 c1 08 00 00       	jmp    0x521015
520754:	8b 45 e0             	mov    -0x20(%ebp),%eax
520757:	83 78 0c 00          	cmpl   $0x0,0xc(%eax)
52075b:	74 10                	je     0x52076d
52075d:	68 3c a4 6b 00       	push   $0x6ba43c
520762:	56                   	push   %esi
520763:	e8 f8 2a 00 00       	call   0x523260
520768:	e9 a5 08 00 00       	jmp    0x521012
52076d:	83 78 38 00          	cmpl   $0x0,0x38(%eax)
520771:	74 10                	je     0x520783
520773:	68 58 a4 6b 00       	push   $0x6ba458
520778:	56                   	push   %esi
520779:	e8 e2 2a 00 00       	call   0x523260
52077e:	e9 8f 08 00 00       	jmp    0x521012
520783:	8b 4d ac             	mov    -0x54(%ebp),%ecx
520786:	85 c9                	test   %ecx,%ecx
520788:	0f 84 a9 00 00 00    	je     0x520837
52078e:	8b 7d dc             	mov    -0x24(%ebp),%edi
520791:	51                   	push   %ecx
520792:	57                   	push   %edi
520793:	e8 98 0e 01 00       	call   0x531630
520798:	8b d8                	mov    %eax,%ebx
52079a:	83 c4 08             	add    $0x8,%esp
52079d:	89 5d b4             	mov    %ebx,-0x4c(%ebp)
5207a0:	85 db                	test   %ebx,%ebx
5207a2:	0f 84 6d 08 00 00    	je     0x521015
5207a8:	8b 45 e0             	mov    -0x20(%ebp),%eax
5207ab:	ff 30                	push   (%eax)
5207ad:	68 e4 a3 6b 00       	push   $0x6ba3e4
5207b2:	53                   	push   %ebx
5207b3:	56                   	push   %esi
5207b4:	e8 07 d8 ff ff       	call   0x51dfc0
5207b9:	83 c4 10             	add    $0x10,%esp
5207bc:	85 c0                	test   %eax,%eax
5207be:	0f 85 51 08 00 00    	jne    0x521015
5207c4:	80 be c8 00 00 00 02 	cmpb   $0x2,0xc8(%esi)
5207cb:	0f 83 a3 00 00 00    	jae    0x520874
5207d1:	38 87 a5 00 00 00    	cmp    %al,0xa5(%edi)
5207d7:	75 23                	jne    0x5207fc
5207d9:	50                   	push   %eax