525328:	5d                   	pop    %ebp
525329:	c3                   	ret
52532a:	f6 47 04 08          	testb  $0x8,0x4(%edi)
52532e:	8b 4f 1c             	mov    0x1c(%edi),%ecx
525331:	0f 84 81 00 00 00    	je     0x5253b8
525337:	8b 75 10             	mov    0x10(%ebp),%esi
52533a:	56                   	push   %esi
52533b:	ff 77 0c             	push   0xc(%edi)
52533e:	53                   	push   %ebx
52533f:	e8 0c ff ff ff       	call   0x525250
525344:	8b 57 2c             	mov    0x2c(%edi),%edx
525347:	83 c4 0c             	add    $0xc,%esp
52534a:	8b c8                	mov    %eax,%ecx
52534c:	89 4d 80             	mov    %ecx,-0x80(%ebp)
52534f:	85 d2                	test   %edx,%edx
525351:	74 13                	je     0x525366
525353:	0f bf 47 20          	movswl 0x20(%edi),%eax
525357:	50                   	push   %eax
525358:	52                   	push   %edx
525359:	e8 a2 8a 01 00       	call   0x53de00
52535e:	8b 4d 80             	mov    -0x80(%ebp),%ecx
525361:	83 c4 08             	add    $0x8,%esp
525364:	eb 03                	jmp    0x525369
525366:	8a 47 01             	mov    0x1(%edi),%al
525369:	0f be f8             	movsbl %al,%edi
52536c:	83 ff 41             	cmp    $0x41,%edi
52536f:	7e 33                	jle    0x5253a4
525371:	8b 5d 84             	mov    -0x7c(%ebp),%ebx
525374:	3b ce                	cmp    %esi,%ecx
525376:	74 12                	je     0x52538a
525378:	56                   	push   %esi
525379:	51                   	push   %ecx
52537a:	6a 4e                	push   $0x4e
52537c:	53                   	push   %ebx
52537d:	e8 5e c7 01 00       	call   0x541ae0
525382:	8b ce                	mov    %esi,%ecx
525384:	83 c4 10             	add    $0x10,%esp
525387:	89 4d 80             	mov    %ecx,-0x80(%ebp)
52538a:	6a ff                	push   $0xffffffff
52538c:	8d 04 7d f0 1d 6b 00 	lea    0x6b1df0(,%edi,2),%eax
525393:	50                   	push   %eax
525394:	6a 00                	push   $0x0
525396:	6a 01                	push   $0x1
525398:	51                   	push   %ecx
525399:	6a 5a                	push   $0x5a
52539b:	53                   	push   %ebx
52539c:	e8 ef c7 01 00       	call   0x541b90
5253a1:	83 c4 1c             	add    $0x1c,%esp
5253a4:	8b 45 80             	mov    -0x80(%ebp),%eax
5253a7:	5f                   	pop    %edi
5253a8:	5e                   	pop    %esi
5253a9:	5b                   	pop    %ebx
5253aa:	8b 4d fc             	mov    -0x4(%ebp),%ecx
5253ad:	33 cd                	xor    %ebp,%ecx
5253af:	e8 26 c1 0b 00       	call   0x5e14da
5253b4:	8b e5                	mov    %ebp,%esp
5253b6:	5d                   	pop    %ebp
5253b7:	c3                   	ret
5253b8:	85 c9                	test   %ecx,%ecx
5253ba:	0f 89 eb 00 00 00    	jns    0x5254ab
5253c0:	8b 43 34             	mov    0x34(%ebx),%eax
5253c3:	85 c0                	test   %eax,%eax
5253c5:	0f 89 dd 00 00 00    	jns    0x5254a8
5253cb:	0f bf 57 20          	movswl 0x20(%edi),%edx
5253cf:	8b 4f 2c             	mov    0x2c(%edi),%ecx
5253d2:	89 4d 90             	mov    %ecx,-0x70(%ebp)
5253d5:	85 d2                	test   %edx,%edx
5253d7:	79 13                	jns    0x5253ec
5253d9:	5f                   	pop    %edi
5253da:	5e                   	pop    %esi
5253db:	f7 d0                	not    %eax
5253dd:	5b                   	pop    %ebx
5253de:	8b 4d fc             	mov    -0x4(%ebp),%ecx
5253e1:	33 cd                	xor    %ebp,%ecx
5253e3:	e8 f2 c0 0b 00       	call   0x5e14da
5253e8:	8b e5                	mov    %ebp,%esp
5253ea:	5d                   	pop    %ebp
5253eb:	c3                   	ret
5253ec:	8b 47 2c             	mov    0x2c(%edi),%eax
5253ef:	8d 0c 92             	lea    (%edx,%edx,4),%ecx
5253f2:	52                   	push   %edx
5253f3:	ff 75 90             	push   -0x70(%ebp)
5253f6:	8b 40 04             	mov    0x4(%eax),%eax
5253f9:	8d 3c 88             	lea    (%eax,%ecx,4),%edi
5253fc:	e8 4f 8a 01 00       	call   0x53de50
525401:	0f bf c8             	movswl %ax,%ecx
525404:	83 c4 08             	add    $0x8,%esp
525407:	2b 4b 34             	sub    0x34(%ebx),%ecx
52540a:	0f b7 47 10          	movzwl 0x10(%edi),%eax
52540e:	89 4d 90             	mov    %ecx,-0x70(%ebp)
525411:	a8 60                	test   $0x60,%al
525413:	74 61                	je     0x525476
525415:	a9 00 01 00 00       	test   $0x100,%eax
52541a:	74 23                	je     0x52543f
52541c:	ff 37                	push   (%edi)
52541e:	68 28 92 6b 00       	push   $0x6b9228
525423:	53                   	push   %ebx
525424:	e8 37 de ff ff       	call   0x523260
525429:	83 c4 0c             	add    $0xc,%esp
52542c:	5f                   	pop    %edi
52542d:	5e                   	pop    %esi
52542e:	33 c0                	xor    %eax,%eax
525430:	5b                   	pop    %ebx
525431:	8b 4d fc             	mov    -0x4(%ebp),%ecx
525434:	33 cd                	xor    %ebp,%ecx
525436:	e8 9f c0 0b 00       	call   0x5e14da
52543b:	8b e5                	mov    %ebp,%esp
52543d:	5d                   	pop    %ebp
52543e:	c3                   	ret
52543f:	0d 00 01 00 00       	or     $0x100,%eax
525444:	66 89 47 10          	mov    %ax,0x10(%edi)
525448:	84 c0                	test   %al,%al
52544a:	79 0e                	jns    0x52545a
52544c:	51                   	push   %ecx
52544d:	57                   	push   %edi
52544e:	53                   	push   %ebx
52544f:	e8 2c eb ff ff       	call   0x523f80
525454:	8b 4d 90             	mov    -0x70(%ebp),%ecx
525457:	83 c4 0c             	add    $0xc,%esp
52545a:	b8 7f fe 00 00       	mov    $0xfe7f,%eax
52545f:	66 21 47 10          	and    %ax,0x10(%edi)
525463:	5f                   	pop    %edi
525464:	5e                   	pop    %esi
525465:	8b c1                	mov    %ecx,%eax
525467:	5b                   	pop    %ebx
525468:	8b 4d fc             	mov    -0x4(%ebp),%ecx
52546b:	33 cd                	xor    %ebp,%ecx
52546d:	e8 68 c0 0b 00       	call   0x5e14da
525472:	8b e5                	mov    %ebp,%esp
525474:	5d                   	pop    %ebp
525475:	c3                   	ret
525476:	80 7f 0d 45          	cmpb   $0x45,0xd(%edi)
52547a:	75 e7                	jne    0x525463
52547c:	8b 5d 10             	mov    0x10(%ebp),%ebx
52547f:	53                   	push   %ebx
525480:	51                   	push   %ecx
525481:	6a 4e                	push   $0x4e
525483:	56                   	push   %esi
525484:	e8 57 c6 01 00       	call   0x541ae0
525489:	53                   	push   %ebx
52548a:	6a 53                	push   $0x53
52548c:	56                   	push   %esi
52548d:	e8 ee c5 01 00       	call   0x541a80
525492:	83 c4 1c             	add    $0x1c,%esp
525495:	8b c3                	mov    %ebx,%eax
525497:	5f                   	pop    %edi
525498:	5e                   	pop    %esi
525499:	5b                   	pop    %ebx
52549a:	8b 4d fc             	mov    -0x4(%ebp),%ecx
52549d:	33 cd                	xor    %ebp,%ecx
52549f:	e8 36 c0 0b 00       	call   0x5e14da
5254a4:	8b e5                	mov    %ebp,%esp
5254a6:	5d                   	pop    %ebp
5254a7:	c3                   	ret
5254a8:	8d 48 ff             	lea    -0x1(%eax),%ecx
5254ab:	0f b6 47 02          	movzbl 0x2(%edi),%eax
5254af:	50                   	push   %eax
5254b0:	ff 75 10             	push   0x10(%ebp)
5254b3:	0f bf 47 20          	movswl 0x20(%edi),%eax
5254b7:	51                   	push   %ecx
5254b8:	50                   	push   %eax
5254b9:	ff 77 2c             	push   0x2c(%edi)
5254bc:	53                   	push   %ebx
5254bd:	e8 9e eb ff ff       	call   0x524060
5254c2:	83 c4 18             	add    $0x18,%esp
5254c5:	8b d8                	mov    %eax,%ebx
5254c7:	83 7f 2c 00          	cmpl   $0x0,0x2c(%edi)
5254cb:	0f 85 d2 0b 00 00    	jne    0x5260a3
5254d1:	80 7f 01 45          	cmpb   $0x45,0x1(%edi)
5254d5:	0f 85 c8 0b 00 00    	jne    0x5260a3
5254db:	53                   	push   %ebx
5254dc:	6a 53                	push   $0x53
5254de:	56                   	push   %esi
5254df:	e8 9c c5 01 00       	call   0x541a80
5254e4:	83 c4 0c             	add    $0xc,%esp
5254e7:	8b c3                	mov    %ebx,%eax
5254e9:	5f                   	pop    %edi
5254ea:	5e                   	pop    %esi
5254eb:	5b                   	pop    %ebx
5254ec:	8b 4d fc             	mov    -0x4(%ebp),%ecx
5254ef:	33 cd                	xor    %ebp,%ecx
5254f1:	e8 e4 bf 0b 00       	call   0x5e14da
5254f6:	8b e5                	mov    %ebp,%esp
5254f8:	5d                   	pop    %ebp
5254f9:	c3                   	ret
5254fa:	8b 75 10             	mov    0x10(%ebp),%esi
5254fd:	56                   	push   %esi
5254fe:	6a 00                	push   $0x0
525500:	57                   	push   %edi
525501:	53                   	push   %ebx
525502:	e8 69 4b fd ff       	call   0x4fa070
525507:	83 c4 10             	add    $0x10,%esp
52550a:	8b c6                	mov    %esi,%eax
52550c:	5f                   	pop    %edi
52550d:	5e                   	pop    %esi
52550e:	5b                   	pop    %ebx
52550f:	8b 4d fc             	mov    -0x4(%ebp),%ecx
525512:	33 cd                	xor    %ebp,%ecx
525514:	e8 c1 bf 0b 00       	call   0x5e14da
525519:	8b e5                	mov    %ebp,%esp
52551b:	5d                   	pop    %ebp
52551c:	c3                   	ret
52551d:	8b 5d 10             	mov    0x10(%ebp),%ebx
525520:	53                   	push   %ebx
525521:	57                   	push   %edi
525522:	e8 69 28 00 00       	call   0x527d90
525527:	83 c4 04             	add    $0x4,%esp
52552a:	50                   	push   %eax
52552b:	6a 45                	push   $0x45
52552d:	e9 68 0b 00 00       	jmp    0x52609a
525532:	8b 5d 10             	mov    0x10(%ebp),%ebx
525535:	53                   	push   %ebx
525536:	6a 00                	push   $0x0
525538:	ff 77 08             	push   0x8(%edi)
52553b:	56                   	push   %esi
52553c:	e8 ef 4c fd ff       	call   0x4fa230
525541:	e9 5a 0b 00 00       	jmp    0x5260a0
525546:	ff 77 08             	push   0x8(%edi)
525549:	8b 5d 10             	mov    0x10(%ebp),%ebx
52554c:	53                   	push   %ebx
52554d:	56                   	push   %esi
52554e:	e8 5d 57 02 00       	call   0x54acb0
525553:	83 c4 0c             	add    $0xc,%esp
525556:	8b c3                	mov    %ebx,%eax
525558:	5f                   	pop    %edi
525559:	5e                   	pop    %esi
52555a:	5b                   	pop    %ebx
52555b:	8b 4d fc             	mov    -0x4(%ebp),%ecx
52555e:	33 cd                	xor    %ebp,%ecx
525560:	e8 75 bf 0b 00       	call   0x5e14da
525565:	8b e5                	mov    %ebp,%esp
525567:	5d                   	pop    %ebp
525568:	c3                   	ret
525569:	8b 77 08             	mov    0x8(%edi),%esi
52556c:	83 c6 02             	add    $0x2,%esi
52556f:	56                   	push   %esi
525570:	e8 1b 87 01 00       	call   0x53dc90
525575:	8d 78 ff             	lea    -0x1(%eax),%edi
525578:	57                   	push   %edi
525579:	56                   	push   %esi
52557a:	8b 75 84             	mov    -0x7c(%ebp),%esi
52557d:	ff 36                	push   (%esi)
52557f:	e8 4c 86 00 00       	call   0x52dbd0
525584:	8b 5d 10             	mov    0x10(%ebp),%ebx
525587:	6a f9                	push   $0xfffffff9
525589:	50                   	push   %eax
52558a:	8b c7                	mov    %edi,%eax
52558c:	99                   	cltd
52558d:	6a 00                	push   $0x0
52558f:	2b c2                	sub    %edx,%eax
525591:	53                   	push   %ebx
525592:	d1 f8                	sar    $1,%eax
525594:	50                   	push   %eax
525595:	6a 4a                	push   $0x4a
525597:	56                   	push   %esi
525598:	e8 f3 c5 01 00       	call   0x541b90
52559d:	83 c4 2c             	add    $0x2c,%esp
5255a0:	8b c3                	mov    %ebx,%eax
5255a2:	5f                   	pop    %edi
5255a3:	5e                   	pop    %esi
5255a4:	5b                   	pop    %ebx
5255a5:	8b 4d fc             	mov    -0x4(%ebp),%ecx
5255a8:	33 cd                	xor    %ebp,%ecx
5255aa:	e8 2b bf 0b 00       	call   0x5e14da
5255af:	8b e5                	mov    %ebp,%esp
5255b1:	5d                   	pop    %ebp
5255b2:	c3                   	ret
5255b3:	ff 75 10             	push   0x10(%ebp)
5255b6:	0f bf 47 20          	movswl 0x20(%edi),%eax
5255ba:	50                   	push   %eax
5255bb:	6a 4b                	push   $0x4b
5255bd:	56                   	push   %esi
5255be:	e8 1d c5 01 00       	call   0x541ae0
5255c3:	8b 47 08             	mov    0x8(%edi),%eax
5255c6:	83 c4 10             	add    $0x10,%esp
5255c9:	80 78 01 00          	cmpb   $0x0,0x1(%eax)
5255cd:	74 26                	je     0x5255f5
5255cf:	0f bf 47 20          	movswl 0x20(%edi),%eax
5255d3:	8b b3 d8 00 00 00    	mov    0xd8(%ebx),%esi
5255d9:	50                   	push   %eax
5255da:	56                   	push   %esi
5255db:	e8 e0 c0 01 00       	call   0x5416c0
5255e0:	8b 5d 84             	mov    -0x7c(%ebp),%ebx
5255e3:	6a ff                	push   $0xffffffff
5255e5:	50                   	push   %eax
5255e6:	53                   	push   %ebx
5255e7:	c7 06 00 00 00 00    	movl   $0x0,(%esi)
5255ed:	e8 2e c8 01 00       	call   0x541e20
5255f2:	83 c4 14             	add    $0x14,%esp
5255f5:	8b 45 10             	mov    0x10(%ebp),%eax
5255f8:	5f                   	pop    %edi
5255f9:	5e                   	pop    %esi
5255fa:	5b                   	pop    %ebx
5255fb:	8b 4d fc             	mov    -0x4(%ebp),%ecx
5255fe:	33 cd                	xor    %ebp,%ecx
525600:	e8 d5 be 0b 00       	call   0x5e14da
525605:	8b e5                	mov    %ebp,%esp
525607:	5d                   	pop    %ebp
525608:	c3                   	ret
525609:	8b 47 1c             	mov    0x1c(%edi),%eax
52560c:	5f                   	pop    %edi
52560d:	5e                   	pop    %esi
52560e:	5b                   	pop    %ebx
52560f:	8b 4d fc             	mov    -0x4(%ebp),%ecx
525612:	33 cd                	xor    %ebp,%ecx
525614:	e8 c1 be 0b 00       	call   0x5e14da
525619:	8b e5                	mov    %ebp,%esp
52561b:	5d                   	pop    %ebp
52561c:	c3                   	ret
52561d:	8b 75 10             	mov    0x10(%ebp),%esi
525620:	56                   	push   %esi
525621:	ff 77 0c             	push   0xc(%edi)
525624:	53                   	push   %ebx
525625:	e8 26 fc ff ff       	call   0x525250
52562a:	8b 5d 84             	mov    -0x7c(%ebp),%ebx
52562d:	83 c4 0c             	add    $0xc,%esp
525630:	89 45 90             	mov    %eax,-0x70(%ebp)
525633:	3b c6                	cmp    %esi,%eax
525635:	74 10                	je     0x525647
525637:	56                   	push   %esi
525638:	50                   	push   %eax
525639:	6a 4e                	push   $0x4e
52563b:	53                   	push   %ebx
52563c:	e8 9f c4 01 00       	call   0x541ae0
525641:	83 c4 10             	add    $0x10,%esp
525644:	89 75 90             	mov    %esi,-0x70(%ebp)
525647:	6a 00                	push   $0x0
525649:	ff 77 08             	push   0x8(%edi)
52564c:	e8 6f 2a ff ff       	call   0x5180c0
525651:	0f be c0             	movsbl %al,%eax
525654:	50                   	push   %eax
525655:	56                   	push   %esi
525656:	6a 54                	push   $0x54
525658:	53                   	push   %ebx
525659:	e8 82 c4 01 00       	call   0x541ae0
52565e:	8b 45 90             	mov    -0x70(%ebp),%eax
525661:	83 c4 18             	add    $0x18,%esp
525664:	5f                   	pop    %edi
525665:	5e                   	pop    %esi
525666:	5b                   	pop    %ebx
525667:	8b 4d fc             	mov    -0x4(%ebp),%ecx
52566a:	33 cd                	xor    %ebp,%ecx
52566c:	e8 69 be 0b 00       	call   0x5e14da
525671:	8b e5                	mov    %ebp,%esp
525673:	5d                   	pop    %ebp
525674:	c3                   	ret
525675:	33 c0                	xor    %eax,%eax
525677:	be 80 00 00 00       	mov    $0x80,%esi
52567c:	83 fa 2d             	cmp    $0x2d,%edx
52567f:	89 b5 70 ff ff ff    	mov    %esi,-0x90(%ebp)