521208:	85 c0                	test   %eax,%eax
52120a:	0f 84 0f 01 00 00    	je     0x52131f
521210:	83 7f 24 00          	cmpl   $0x0,0x24(%edi)
521214:	0f 85 05 01 00 00    	jne    0x52131f
52121a:	8d 45 cc             	lea    -0x34(%ebp),%eax
52121d:	50                   	push   %eax
52121e:	ff 75 c8             	push   -0x38(%ebp)
521221:	ff 75 c4             	push   -0x3c(%ebp)
521224:	57                   	push   %edi
521225:	e8 b6 d4 01 00       	call   0x53e6e0
52122a:	8b 45 d8             	mov    -0x28(%ebp),%eax
52122d:	ff 70 48             	push   0x48(%eax)
521230:	56                   	push   %esi
521231:	e8 2a 88 01 00       	call   0x539a60
521236:	8b f0                	mov    %eax,%esi
521238:	89 7d e4             	mov    %edi,-0x1c(%ebp)
52123b:	8b 07                	mov    (%edi),%eax
52123d:	8b d6                	mov    %esi,%edx
52123f:	03 d2                	add    %edx,%edx
521241:	83 fe 01             	cmp    $0x1,%esi
521244:	53                   	push   %ebx
521245:	8b 48 10             	mov    0x10(%eax),%ecx
521248:	8b 0c d1             	mov    (%ecx,%edx,8),%ecx
52124b:	89 4d f0             	mov    %ecx,-0x10(%ebp)
52124e:	8b 40 10             	mov    0x10(%eax),%eax
521251:	8b 44 d0 0c          	mov    0xc(%eax,%edx,8),%eax
521255:	0f 94 45 ec          	sete   -0x14(%ebp)
521259:	89 45 e8             	mov    %eax,-0x18(%ebp)
52125c:	8b 45 cc             	mov    -0x34(%ebp),%eax
52125f:	89 45 f8             	mov    %eax,-0x8(%ebp)
521262:	8d 45 e4             	lea    -0x1c(%ebp),%eax
521265:	50                   	push   %eax
521266:	c7 45 f4 60 99 6b 00 	movl   $0x6b9960,-0xc(%ebp)
52126d:	e8 ae 7e 00 00       	call   0x529120
521272:	8b 75 d4             	mov    -0x2c(%ebp),%esi
521275:	83 c4 20             	add    $0x20,%esp
521278:	85 c0                	test   %eax,%eax
52127a:	0f 85 9f 00 00 00    	jne    0x52131f
521280:	81 4b 04 00 00 20 00 	orl    $0x200000,0x4(%ebx)
521287:	80 bf c8 00 00 00 02 	cmpb   $0x2,0xc8(%edi)
52128e:	72 0a                	jb     0x52129a
521290:	8b 45 d8             	mov    -0x28(%ebp),%eax
521293:	89 58 0c             	mov    %ebx,0xc(%eax)
521296:	33 db                	xor    %ebx,%ebx
521298:	eb 12                	jmp    0x5212ac
52129a:	6a 01                	push   $0x1
52129c:	53                   	push   %ebx
52129d:	56                   	push   %esi
52129e:	e8 3d af 01 00       	call   0x53c1e0
5212a3:	8b 4d d8             	mov    -0x28(%ebp),%ecx
5212a6:	83 c4 0c             	add    $0xc,%esp
5212a9:	89 41 0c             	mov    %eax,0xc(%ecx)
5212ac:	6a 01                	push   $0x1
5212ae:	ff 75 d0             	push   -0x30(%ebp)
5212b1:	56                   	push   %esi
5212b2:	e8 09 66 00 00       	call   0x5278c0
5212b7:	8b 4d d8             	mov    -0x28(%ebp),%ecx
5212ba:	83 c4 0c             	add    $0xc,%esp
5212bd:	89 41 18             	mov    %eax,0x18(%ecx)
5212c0:	80 7e 51 00          	cmpb   $0x0,0x51(%esi)
5212c4:	75 59                	jne    0x52131f
5212c6:	8b 87 bc 00 00 00    	mov    0xbc(%edi),%eax
5212cc:	80 38 3b             	cmpb   $0x3b,(%eax)
5212cf:	74 06                	je     0x5212d7
5212d1:	03 87 c0 00 00 00    	add    0xc0(%edi),%eax
5212d7:	8b 55 e0             	mov    -0x20(%ebp),%edx
5212da:	8b 12                	mov    (%edx),%edx
5212dc:	2b c2                	sub    %edx,%eax
5212de:	0f b6 4c 02 ff       	movzbl -0x1(%edx,%eax,1),%ecx
5212e3:	f6 81 40 1b 6b 00 01 	testb  $0x1,0x6b1b40(%ecx)
5212ea:	74 13                	je     0x5212ff
5212ec:	0f 1f 40 00          	nopl   0x0(%eax)
5212f0:	0f b6 4c 02 fe       	movzbl -0x2(%edx,%eax,1),%ecx
5212f5:	48                   	dec    %eax
5212f6:	f6 81 40 1b 6b 00 01 	testb  $0x1,0x6b1b40(%ecx)
5212fd:	75 f1                	jne    0x5212f0
5212ff:	4a                   	dec    %edx
521300:	c7 45 e0 01 00 00 00 	movl   $0x1,-0x20(%ebp)
521307:	03 c2                	add    %edx,%eax
521309:	6a 00                	push   $0x0
52130b:	89 45 dc             	mov    %eax,-0x24(%ebp)
52130e:	8d 45 dc             	lea    -0x24(%ebp),%eax
521311:	6a 00                	push   $0x0
521313:	50                   	push   %eax
521314:	6a 00                	push   $0x0
521316:	57                   	push   %edi
521317:	e8 a4 18 00 00       	call   0x522bc0
52131c:	83 c4 14             	add    $0x14,%esp
52131f:	85 db                	test   %ebx,%ebx
521321:	74 0c                	je     0x52132f
521323:	6a 01                	push   $0x1
521325:	53                   	push   %ebx
521326:	56                   	push   %esi
521327:	e8 c4 7a fd ff       	call   0x4f8df0
52132c:	83 c4 0c             	add    $0xc,%esp
52132f:	80 bf c8 00 00 00 02 	cmpb   $0x2,0xc8(%edi)
521336:	72 0c                	jb     0x521344
521338:	ff 75 d0             	push   -0x30(%ebp)
52133b:	57                   	push   %edi
52133c:	e8 7f 6a 01 00       	call   0x537dc0
521341:	83 c4 08             	add    $0x8,%esp
521344:	8b 45 d0             	mov    -0x30(%ebp),%eax
521347:	85 c0                	test   %eax,%eax
521349:	74 0a                	je     0x521355
52134b:	50                   	push   %eax
52134c:	56                   	push   %esi
52134d:	e8 ae fc fd ff       	call   0x501000
521352:	83 c4 08             	add    $0x8,%esp
521355:	8b 4d fc             	mov    -0x4(%ebp),%ecx
521358:	5f                   	pop    %edi
521359:	5e                   	pop    %esi
52135a:	33 cd                	xor    %ebp,%ecx
52135c:	5b                   	pop    %ebx
52135d:	e8 78 01 0c 00       	call   0x5e14da
521362:	8b e5                	mov    %ebp,%esp
521364:	5d                   	pop    %ebp
521365:	c3                   	ret
521366:	cc                   	int3
521367:	cc                   	int3
521368:	cc                   	int3
521369:	cc                   	int3
52136a:	cc                   	int3
52136b:	cc                   	int3
52136c:	cc                   	int3
52136d:	cc                   	int3
52136e:	cc                   	int3
52136f:	cc                   	int3
521370:	55                   	push   %ebp
521371:	8b ec                	mov    %esp,%ebp
521373:	8b 4d 08             	mov    0x8(%ebp),%ecx
521376:	8b 55 0c             	mov    0xc(%ebp),%edx
521379:	85 c9                	test   %ecx,%ecx
52137b:	74 4a                	je     0x5213c7
52137d:	83 b9 f8 01 00 00 00 	cmpl   $0x0,0x1f8(%ecx)
521384:	74 09                	je     0x52138f
521386:	89 4d 08             	mov    %ecx,0x8(%ebp)
521389:	5d                   	pop    %ebp
52138a:	e9 e1 80 fe ff       	jmp    0x509470
52138f:	3b 91 4c 01 00 00    	cmp    0x14c(%ecx),%edx
521395:	73 30                	jae    0x5213c7
521397:	3b 91 44 01 00 00    	cmp    0x144(%ecx),%edx
52139d:	72 10                	jb     0x5213af
52139f:	8b 81 40 01 00 00    	mov    0x140(%ecx),%eax
5213a5:	89 02                	mov    %eax,(%edx)
5213a7:	89 91 40 01 00 00    	mov    %edx,0x140(%ecx)
5213ad:	5d                   	pop    %ebp
5213ae:	c3                   	ret
5213af:	3b 91 48 01 00 00    	cmp    0x148(%ecx),%edx
5213b5:	72 10                	jb     0x5213c7
5213b7:	8b 81 38 01 00 00    	mov    0x138(%ecx),%eax
5213bd:	89 02                	mov    %eax,(%edx)
5213bf:	89 91 38 01 00 00    	mov    %edx,0x138(%ecx)
5213c5:	5d                   	pop    %ebp
5213c6:	c3                   	ret
5213c7:	52                   	push   %edx
5213c8:	e8 c3 99 fc ff       	call   0x4ead90
5213cd:	83 c4 04             	add    $0x4,%esp
5213d0:	5d                   	pop    %ebp
5213d1:	c3                   	ret
5213d2:	cc                   	int3
5213d3:	cc                   	int3
5213d4:	cc                   	int3
5213d5:	cc                   	int3
5213d6:	cc                   	int3
5213d7:	cc                   	int3
5213d8:	cc                   	int3
5213d9:	cc                   	int3
5213da:	cc                   	int3
5213db:	cc                   	int3
5213dc:	cc                   	int3
5213dd:	cc                   	int3
5213de:	cc                   	int3
5213df:	cc                   	int3
5213e0:	55                   	push   %ebp
5213e1:	8b ec                	mov    %esp,%ebp
5213e3:	8b 4d 0c             	mov    0xc(%ebp),%ecx
5213e6:	56                   	push   %esi
5213e7:	8b 75 08             	mov    0x8(%ebp),%esi
5213ea:	57                   	push   %edi
5213eb:	8b 7d 10             	mov    0x10(%ebp),%edi
5213ee:	0f b7 86 1c 01 00 00 	movzwl 0x11c(%esi),%eax
5213f5:	99                   	cltd
5213f6:	3b fa                	cmp    %edx,%edi
5213f8:	72 34                	jb     0x52142e
5213fa:	77 04                	ja     0x521400
5213fc:	3b c8                	cmp    %eax,%ecx
5213fe:	76 2e                	jbe    0x52142e
521400:	83 be 18 01 00 00 00 	cmpl   $0x0,0x118(%esi)
521407:	75 15                	jne    0x52141e
521409:	ff 86 2c 01 00 00    	incl   0x12c(%esi)
52140f:	57                   	push   %edi
521410:	51                   	push   %ecx
521411:	56                   	push   %esi
521412:	e8 a9 bd fd ff       	call   0x4fd1c0
521417:	83 c4 0c             	add    $0xc,%esp
52141a:	5f                   	pop    %edi
52141b:	5e                   	pop    %esi
52141c:	5d                   	pop    %ebp
52141d:	c3                   	ret
52141e:	80 7e 51 00          	cmpb   $0x0,0x51(%esi)
521422:	0f 84 8a 00 00 00    	je     0x5214b2
521428:	5f                   	pop    %edi
521429:	33 c0                	xor    %eax,%eax
52142b:	5e                   	pop    %esi
52142c:	5d                   	pop    %ebp
52142d:	c3                   	ret
52142e:	85 ff                	test   %edi,%edi
521430:	77 42                	ja     0x521474
521432:	72 08                	jb     0x52143c
521434:	81 f9 80 00 00 00    	cmp    $0x80,%ecx
52143a:	77 38                	ja     0x521474
52143c:	8b 86 40 01 00 00    	mov    0x140(%esi),%eax
521442:	85 c0                	test   %eax,%eax
521444:	74 12                	je     0x521458
521446:	8b 08                	mov    (%eax),%ecx
521448:	89 8e 40 01 00 00    	mov    %ecx,0x140(%esi)
52144e:	ff 86 28 01 00 00    	incl   0x128(%esi)
521454:	5f                   	pop    %edi
521455:	5e                   	pop    %esi
521456:	5d                   	pop    %ebp
521457:	c3                   	ret
521458:	8b 86 3c 01 00 00    	mov    0x13c(%esi),%eax
52145e:	85 c0                	test   %eax,%eax
521460:	74 12                	je     0x521474
521462:	8b 08                	mov    (%eax),%ecx
521464:	89 8e 3c 01 00 00    	mov    %ecx,0x13c(%esi)
52146a:	ff 86 28 01 00 00    	incl   0x128(%esi)
521470:	5f                   	pop    %edi
521471:	5e                   	pop    %esi
521472:	5d                   	pop    %ebp
521473:	c3                   	ret
521474:	8b 86 38 01 00 00    	mov    0x138(%esi),%eax
52147a:	85 c0                	test   %eax,%eax
52147c:	74 12                	je     0x521490
52147e:	8b 08                	mov    (%eax),%ecx
521480:	89 8e 38 01 00 00    	mov    %ecx,0x138(%esi)
521486:	ff 86 28 01 00 00    	incl   0x128(%esi)
52148c:	5f                   	pop    %edi
52148d:	5e                   	pop    %esi
52148e:	5d                   	pop    %ebp
52148f:	c3                   	ret
521490:	8b 86 34 01 00 00    	mov    0x134(%esi),%eax
521496:	85 c0                	test   %eax,%eax
521498:	74 12                	je     0x5214ac
52149a:	8b 08                	mov    (%eax),%ecx
52149c:	89 8e 34 01 00 00    	mov    %ecx,0x134(%esi)
5214a2:	ff 86 28 01 00 00    	incl   0x128(%esi)
5214a8:	5f                   	pop    %edi
5214a9:	5e                   	pop    %esi
5214aa:	5d                   	pop    %ebp
5214ab:	c3                   	ret
5214ac:	ff 86 30 01 00 00    	incl   0x130(%esi)
5214b2:	57                   	push   %edi
5214b3:	51                   	push   %ecx
5214b4:	56                   	push   %esi
5214b5:	e8 06 bd fd ff       	call   0x4fd1c0
5214ba:	83 c4 0c             	add    $0xc,%esp
5214bd:	5f                   	pop    %edi
5214be:	5e                   	pop    %esi
5214bf:	5d                   	pop    %ebp
5214c0:	c3                   	ret
5214c1:	cc                   	int3
5214c2:	cc                   	int3
5214c3:	cc                   	int3
5214c4:	cc                   	int3
5214c5:	cc                   	int3
5214c6:	cc                   	int3
5214c7:	cc                   	int3
5214c8:	cc                   	int3
5214c9:	cc                   	int3
5214ca:	cc                   	int3
5214cb:	cc                   	int3
5214cc:	cc                   	int3
5214cd:	cc                   	int3
5214ce:	cc                   	int3
5214cf:	cc                   	int3
5214d0:	55                   	push   %ebp
5214d1:	8b ec                	mov    %esp,%ebp
5214d3:	8b 45 08             	mov    0x8(%ebp),%eax
5214d6:	8b 4d 0c             	mov    0xc(%ebp),%ecx
5214d9:	85 c0                	test   %eax,%eax
5214db:	74 28                	je     0x521505
5214dd:	3b 88 4c 01 00 00    	cmp    0x14c(%eax),%ecx
5214e3:	73 20                	jae    0x521505
5214e5:	3b 88 44 01 00 00    	cmp    0x144(%eax),%ecx
5214eb:	72 07                	jb     0x5214f4
5214ed:	b8 80 00 00 00       	mov    $0x80,%eax
5214f2:	5d                   	pop    %ebp
5214f3:	c3                   	ret
5214f4:	3b 88 48 01 00 00    	cmp    0x148(%eax),%ecx
5214fa:	72 09                	jb     0x521505
5214fc:	0f b7 80 1e 01 00 00 	movzwl 0x11e(%eax),%eax
521503:	5d                   	pop    %ebp
521504:	c3                   	ret
521505:	51                   	push   %ecx
521506:	ff 15 3c 18 72 00    	call   *0x72183c
52150c:	83 c4 04             	add    $0x4,%esp
52150f:	5d                   	pop    %ebp
521510:	c3                   	ret
521511:	cc                   	int3
521512:	cc                   	int3
521513:	cc                   	int3
521514:	cc                   	int3
521515:	cc                   	int3
521516:	cc                   	int3
521517:	cc                   	int3
521518:	cc                   	int3
521519:	cc                   	int3
52151a:	cc                   	int3
52151b:	cc                   	int3
52151c:	cc                   	int3
52151d:	cc                   	int3
52151e:	cc                   	int3
52151f:	cc                   	int3
521520:	55                   	push   %ebp
521521:	8b ec                	mov    %esp,%ebp
521523:	8b 45 08             	mov    0x8(%ebp),%eax
521526:	56                   	push   %esi
521527:	57                   	push   %edi
521528:	8b 7d 0c             	mov    0xc(%ebp),%edi
52152b:	ff 75 10             	push   0x10(%ebp)
52152e:	57                   	push   %edi
52152f:	85 c0                	test   %eax,%eax
521531:	74 0b                	je     0x52153e
521533:	50                   	push   %eax
521534:	e8 a7 fe ff ff       	call   0x5213e0
521539:	83 c4 0c             	add    $0xc,%esp
52153c:	eb 08                	jmp    0x521546
52153e:	e8 1d fa 00 00       	call   0x530f60
521543:	83 c4 08             	add    $0x8,%esp
521546:	8b f0                	mov    %eax,%esi
521548:	85 f6                	test   %esi,%esi
52154a:	74 0c                	je     0x521558
52154c:	57                   	push   %edi
52154d:	6a 00                	push   $0x0
52154f:	56                   	push   %esi
521550:	e8 ab 24 0c 00       	call   0x5e3a00
521555:	83 c4 0c             	add    $0xc,%esp
521558:	5f                   	pop    %edi
521559:	8b c6                	mov    %esi,%eax
52155b:	5e                   	pop    %esi
52155c:	5d                   	pop    %ebp
52155d:	c3                   	ret
52155e:	cc                   	int3
52155f:	cc                   	int3
521560:	55                   	push   %ebp
521561:	8b ec                	mov    %esp,%ebp
521563:	8b 4d 0c             	mov    0xc(%ebp),%ecx
521566:	85 c9                	test   %ecx,%ecx
521568:	75 13                	jne    0x52157d