52b1e0:	3b d7                	cmp    %edi,%edx
52b1e2:	0f 85 af 00 00 00    	jne    0x52b297
52b1e8:	8b 85 74 ff ff ff    	mov    -0x8c(%ebp),%eax
52b1ee:	8b 5e 6c             	mov    0x6c(%esi),%ebx
52b1f1:	40                   	inc    %eax
52b1f2:	89 45 a4             	mov    %eax,-0x5c(%ebp)
52b1f5:	89 9d 64 ff ff ff    	mov    %ebx,-0x9c(%ebp)
52b1fb:	39 5e 70             	cmp    %ebx,0x70(%esi)
52b1fe:	7f 19                	jg     0x52b219
52b200:	6a 00                	push   $0x0
52b202:	6a 00                	push   $0x0
52b204:	6a 00                	push   $0x0
52b206:	6a 0b                	push   $0xb
52b208:	56                   	push   %esi
52b209:	e8 f2 b2 fd ff       	call   0x506500
52b20e:	83 c4 14             	add    $0x14,%esp
52b211:	89 85 64 ff ff ff    	mov    %eax,-0x9c(%ebp)
52b217:	eb 33                	jmp    0x52b24c
52b219:	8d 43 01             	lea    0x1(%ebx),%eax
52b21c:	89 46 6c             	mov    %eax,0x6c(%esi)
52b21f:	8d 0c 9b             	lea    (%ebx,%ebx,4),%ecx
52b222:	8b 46 68             	mov    0x68(%esi),%eax
52b225:	c7 04 88 0b 00 00 00 	movl   $0xb,(%eax,%ecx,4)
52b22c:	c7 44 88 04 00 00 00 	movl   $0x0,0x4(%eax,%ecx,4)
52b233:	00
52b234:	c7 44 88 08 00 00 00 	movl   $0x0,0x8(%eax,%ecx,4)
52b23b:	00
52b23c:	c7 44 88 0c 00 00 00 	movl   $0x0,0xc(%eax,%ecx,4)
52b243:	00
52b244:	c7 44 88 10 00 00 00 	movl   $0x0,0x10(%eax,%ecx,4)
52b24b:	00
52b24c:	8b 85 74 ff ff ff    	mov    -0x8c(%ebp),%eax
52b252:	8b c8                	mov    %eax,%ecx
52b254:	8b 56 6c             	mov    0x6c(%esi),%edx
52b257:	85 c0                	test   %eax,%eax
52b259:	79 03                	jns    0x52b25e
52b25b:	8d 4a ff             	lea    -0x1(%edx),%ecx
52b25e:	8b 06                	mov    (%esi),%eax
52b260:	80 78 51 00          	cmpb   $0x0,0x51(%eax)
52b264:	74 16                	je     0x52b27c
52b266:	8b 5d dc             	mov    -0x24(%ebp),%ebx
52b269:	b8 ec 02 73 00       	mov    $0x7302ec,%eax
52b26e:	8b 4d d8             	mov    -0x28(%ebp),%ecx
52b271:	89 50 08             	mov    %edx,0x8(%eax)
52b274:	8b 95 78 ff ff ff    	mov    -0x88(%ebp),%edx
52b27a:	eb 27                	jmp    0x52b2a3
52b27c:	8b 46 68             	mov    0x68(%esi),%eax
52b27f:	8d 0c 89             	lea    (%ecx,%ecx,4),%ecx
52b282:	8b 5d dc             	mov    -0x24(%ebp),%ebx
52b285:	89 54 88 08          	mov    %edx,0x8(%eax,%ecx,4)
52b289:	8b 95 78 ff ff ff    	mov    -0x88(%ebp),%edx
52b28f:	8d 04 88             	lea    (%eax,%ecx,4),%eax
52b292:	8b 4d d8             	mov    -0x28(%ebp),%ecx
52b295:	eb 0c                	jmp    0x52b2a3
52b297:	8b 5d dc             	mov    -0x24(%ebp),%ebx
52b29a:	ff 4b 38             	decl   0x38(%ebx)
52b29d:	8b 43 38             	mov    0x38(%ebx),%eax
52b2a0:	89 45 a4             	mov    %eax,-0x5c(%ebp)
52b2a3:	80 7d af 00          	cmpb   $0x0,-0x51(%ebp)
52b2a7:	75 1f                	jne    0x52b2c8
52b2a9:	85 d2                	test   %edx,%edx
52b2ab:	74 04                	je     0x52b2b1
52b2ad:	3b d7                	cmp    %edi,%edx
52b2af:	75 17                	jne    0x52b2c8
52b2b1:	8b 7d 1c             	mov    0x1c(%ebp),%edi
52b2b4:	8d 47 01             	lea    0x1(%edi),%eax
52b2b7:	50                   	push   %eax
52b2b8:	51                   	push   %ecx
52b2b9:	56                   	push   %esi
52b2ba:	e8 81 2a 01 00       	call   0x53dd40
52b2bf:	83 c4 0c             	add    $0xc,%esp
52b2c2:	c6 45 af 01          	movb   $0x1,-0x51(%ebp)
52b2c6:	eb 03                	jmp    0x52b2cb
52b2c8:	8b 7d 1c             	mov    0x1c(%ebp),%edi
52b2cb:	8b 45 d0             	mov    -0x30(%ebp),%eax
52b2ce:	8b 4d d4             	mov    -0x2c(%ebp),%ecx
52b2d1:	83 78 24 00          	cmpl   $0x0,0x24(%eax)
52b2d5:	0f 84 ae 00 00 00    	je     0x52b389
52b2db:	8b 45 b8             	mov    -0x48(%ebp),%eax
52b2de:	8b 14 88             	mov    (%eax,%ecx,4),%edx
52b2e1:	8b 4e 6c             	mov    0x6c(%esi),%ecx
52b2e4:	39 4e 70             	cmp    %ecx,0x70(%esi)
52b2e7:	7f 12                	jg     0x52b2fb
52b2e9:	6a 00                	push   $0x0
52b2eb:	52                   	push   %edx
52b2ec:	6a 00                	push   $0x0
52b2ee:	6a 48                	push   $0x48
52b2f0:	56                   	push   %esi
52b2f1:	e8 0a b2 fd ff       	call   0x506500
52b2f6:	83 c4 14             	add    $0x14,%esp
52b2f9:	eb 32                	jmp    0x52b32d
52b2fb:	8d 41 01             	lea    0x1(%ecx),%eax
52b2fe:	89 46 6c             	mov    %eax,0x6c(%esi)
52b301:	8d 0c 89             	lea    (%ecx,%ecx,4),%ecx
52b304:	8b 46 68             	mov    0x68(%esi),%eax
52b307:	8b 75 90             	mov    -0x70(%ebp),%esi
52b30a:	c7 04 88 48 00 00 00 	movl   $0x48,(%eax,%ecx,4)
52b311:	c7 44 88 04 00 00 00 	movl   $0x0,0x4(%eax,%ecx,4)
52b318:	00
52b319:	89 54 88 08          	mov    %edx,0x8(%eax,%ecx,4)
52b31d:	c7 44 88 0c 00 00 00 	movl   $0x0,0xc(%eax,%ecx,4)
52b324:	00
52b325:	c7 44 88 10 00 00 00 	movl   $0x0,0x10(%eax,%ecx,4)
52b32c:	00
52b32d:	f7 d7                	not    %edi
52b32f:	89 7b 34             	mov    %edi,0x34(%ebx)
52b332:	8b 7d d0             	mov    -0x30(%ebp),%edi
52b335:	8b 1b                	mov    (%ebx),%ebx
52b337:	8b 47 24             	mov    0x24(%edi),%eax
52b33a:	85 c0                	test   %eax,%eax
52b33c:	74 12                	je     0x52b350
52b33e:	6a 00                	push   $0x0
52b340:	6a 00                	push   $0x0
52b342:	50                   	push   %eax
52b343:	53                   	push   %ebx
52b344:	e8 17 55 fd ff       	call   0x500860
52b349:	83 c4 10             	add    $0x10,%esp
52b34c:	8b f8                	mov    %eax,%edi
52b34e:	eb 02                	jmp    0x52b352
52b350:	33 ff                	xor    %edi,%edi
52b352:	80 7b 51 00          	cmpb   $0x0,0x51(%ebx)
52b356:	75 11                	jne    0x52b369
52b358:	6a 10                	push   $0x10
52b35a:	ff 75 a4             	push   -0x5c(%ebp)
52b35d:	57                   	push   %edi
52b35e:	ff 75 dc             	push   -0x24(%ebp)
52b361:	e8 4a b7 ff ff       	call   0x526ab0
52b366:	83 c4 10             	add    $0x10,%esp
52b369:	85 ff                	test   %edi,%edi
52b36b:	74 0a                	je     0x52b377
52b36d:	57                   	push   %edi
52b36e:	53                   	push   %ebx
52b36f:	e8 3c b4 ff ff       	call   0x5267b0
52b374:	83 c4 08             	add    $0x8,%esp
52b377:	8b 55 dc             	mov    -0x24(%ebp),%edx
52b37a:	8b 45 d0             	mov    -0x30(%ebp),%eax
52b37d:	8b 4d d4             	mov    -0x2c(%ebp),%ecx
52b380:	c7 42 34 00 00 00 00 	movl   $0x0,0x34(%edx)
52b387:	eb 03                	jmp    0x52b38c
52b389:	8b 55 dc             	mov    -0x24(%ebp),%edx
52b38c:	8b 7d b8             	mov    -0x48(%ebp),%edi
52b38f:	8b 0c 8f             	mov    (%edi,%ecx,4),%ecx
52b392:	33 ff                	xor    %edi,%edi
52b394:	89 4d a8             	mov    %ecx,-0x58(%ebp)
52b397:	8d 59 01             	lea    0x1(%ecx),%ebx
52b39a:	33 c9                	xor    %ecx,%ecx
52b39c:	89 5d cc             	mov    %ebx,-0x34(%ebp)
52b39f:	89 4d b4             	mov    %ecx,-0x4c(%ebp)
52b3a2:	66 3b 78 34          	cmp    0x34(%eax),%di
52b3a6:	0f 83 be 01 00 00    	jae    0x52b56a
52b3ac:	89 7d c4             	mov    %edi,-0x3c(%ebp)
52b3af:	90                   	nop
52b3b0:	8b 40 04             	mov    0x4(%eax),%eax
52b3b3:	0f bf 0c 48          	movswl (%eax,%ecx,2),%ecx
52b3b7:	83 f9 fe             	cmp    $0xfffffffe,%ecx
52b3ba:	0f 85 dd 00 00 00    	jne    0x52b49d
52b3c0:	8b 45 1c             	mov    0x1c(%ebp),%eax
52b3c3:	f7 d0                	not    %eax
52b3c5:	89 42 34             	mov    %eax,0x34(%edx)
52b3c8:	8b 45 d0             	mov    -0x30(%ebp),%eax
52b3cb:	8b 40 28             	mov    0x28(%eax),%eax
52b3ce:	8b 44 38 04          	mov    0x4(%eax,%edi,1),%eax
52b3d2:	8b 3a                	mov    (%edx),%edi
52b3d4:	89 7d c0             	mov    %edi,-0x40(%ebp)
52b3d7:	85 c0                	test   %eax,%eax
52b3d9:	74 13                	je     0x52b3ee
52b3db:	6a 00                	push   $0x0
52b3dd:	6a 00                	push   $0x0
52b3df:	50                   	push   %eax
52b3e0:	57                   	push   %edi
52b3e1:	e8 7a 54 fd ff       	call   0x500860
52b3e6:	8b 55 dc             	mov    -0x24(%ebp),%edx
52b3e9:	83 c4 10             	add    $0x10,%esp
52b3ec:	eb 02                	jmp    0x52b3f0
52b3ee:	33 c0                	xor    %eax,%eax
52b3f0:	80 7f 51 00          	cmpb   $0x0,0x51(%edi)
52b3f4:	89 45 bc             	mov    %eax,-0x44(%ebp)
52b3f7:	0f 85 80 00 00 00    	jne    0x52b47d
52b3fd:	53                   	push   %ebx
52b3fe:	50                   	push   %eax
52b3ff:	52                   	push   %edx
52b400:	e8 4b 9e ff ff       	call   0x525250
52b405:	83 c4 0c             	add    $0xc,%esp
52b408:	89 45 a0             	mov    %eax,-0x60(%ebp)
52b40b:	3b c3                	cmp    %ebx,%eax
52b40d:	74 6e                	je     0x52b47d
52b40f:	8b 4d dc             	mov    -0x24(%ebp),%ecx
52b412:	8b 79 08             	mov    0x8(%ecx),%edi
52b415:	85 ff                	test   %edi,%edi
52b417:	74 61                	je     0x52b47a
52b419:	8b 55 bc             	mov    -0x44(%ebp),%edx
52b41c:	8b 4f 6c             	mov    0x6c(%edi),%ecx
52b41f:	8b 52 04             	mov    0x4(%edx),%edx
52b422:	81 e2 00 00 20 00    	and    $0x200000,%edx
52b428:	f7 da                	neg    %edx
52b42a:	1b d2                	sbb    %edx,%edx
52b42c:	83 c2 4e             	add    $0x4e,%edx
52b42f:	39 4f 70             	cmp    %ecx,0x70(%edi)
52b432:	7f 10                	jg     0x52b444
52b434:	6a 00                	push   $0x0
52b436:	53                   	push   %ebx
52b437:	50                   	push   %eax
52b438:	52                   	push   %edx
52b439:	57                   	push   %edi
52b43a:	e8 c1 b0 fd ff       	call   0x506500
52b43f:	83 c4 14             	add    $0x14,%esp
52b442:	eb 36                	jmp    0x52b47a
52b444:	8d 41 01             	lea    0x1(%ecx),%eax
52b447:	89 47 6c             	mov    %eax,0x6c(%edi)
52b44a:	8d 0c 89             	lea    (%ecx,%ecx,4),%ecx
52b44d:	8b 47 68             	mov    0x68(%edi),%eax
52b450:	88 14 88             	mov    %dl,(%eax,%ecx,4)
52b453:	33 d2                	xor    %edx,%edx
52b455:	66 89 54 88 02       	mov    %dx,0x2(%eax,%ecx,4)
52b45a:	8b 55 a0             	mov    -0x60(%ebp),%edx
52b45d:	89 54 88 04          	mov    %edx,0x4(%eax,%ecx,4)
52b461:	89 5c 88 08          	mov    %ebx,0x8(%eax,%ecx,4)
52b465:	c7 44 88 0c 00 00 00 	movl   $0x0,0xc(%eax,%ecx,4)
52b46c:	00
52b46d:	c7 44 88 10 00 00 00 	movl   $0x0,0x10(%eax,%ecx,4)
52b474:	00
52b475:	c6 44 88 01 00       	movb   $0x0,0x1(%eax,%ecx,4)
52b47a:	8b 7d c0             	mov    -0x40(%ebp),%edi
52b47d:	8b 45 bc             	mov    -0x44(%ebp),%eax
52b480:	85 c0                	test   %eax,%eax
52b482:	74 0a                	je     0x52b48e
52b484:	50                   	push   %eax
52b485:	57                   	push   %edi
52b486:	e8 25 b3 ff ff       	call   0x5267b0
52b48b:	83 c4 08             	add    $0x8,%esp
52b48e:	8b 55 dc             	mov    -0x24(%ebp),%edx
52b491:	c7 42 34 00 00 00 00 	movl   $0x0,0x34(%edx)
52b498:	e9 a7 00 00 00       	jmp    0x52b544
52b49d:	83 f9 ff             	cmp    $0xffffffff,%ecx
52b4a0:	74 56                	je     0x52b4f8
52b4a2:	8b 45 d8             	mov    -0x28(%ebp),%eax
52b4a5:	0f bf 40 28          	movswl 0x28(%eax),%eax
52b4a9:	3b c8                	cmp    %eax,%ecx
52b4ab:	74 4b                	je     0x52b4f8
52b4ad:	51                   	push   %ecx
52b4ae:	ff 75 d8             	push   -0x28(%ebp)
52b4b1:	e8 9a 29 01 00       	call   0x53de50
52b4b6:	8b 55 1c             	mov    0x1c(%ebp),%edx
52b4b9:	83 c4 08             	add    $0x8,%esp
52b4bc:	8b 4e 6c             	mov    0x6c(%esi),%ecx
52b4bf:	42                   	inc    %edx
52b4c0:	98                   	cwtl
52b4c1:	03 d0                	add    %eax,%edx
52b4c3:	39 4e 70             	cmp    %ecx,0x70(%esi)
52b4c6:	7f 14                	jg     0x52b4dc
52b4c8:	6a 00                	push   $0x0
52b4ca:	53                   	push   %ebx
52b4cb:	52                   	push   %edx
52b4cc:	6a 4e                	push   $0x4e
52b4ce:	56                   	push   %esi
52b4cf:	e8 2c b0 fd ff       	call   0x506500
52b4d4:	8b 55 dc             	mov    -0x24(%ebp),%edx
52b4d7:	83 c4 14             	add    $0x14,%esp
52b4da:	eb 6b                	jmp    0x52b547
52b4dc:	8d 41 01             	lea    0x1(%ecx),%eax
52b4df:	89 46 6c             	mov    %eax,0x6c(%esi)
52b4e2:	8d 0c 89             	lea    (%ecx,%ecx,4),%ecx
52b4e5:	8b 46 68             	mov    0x68(%esi),%eax
52b4e8:	89 54 88 04          	mov    %edx,0x4(%eax,%ecx,4)
52b4ec:	8b 55 dc             	mov    -0x24(%ebp),%edx
52b4ef:	c7 04 88 4e 00 00 00 	movl   $0x4e,(%eax,%ecx,4)
52b4f6:	eb 38                	jmp    0x52b530
52b4f8:	8b 4e 6c             	mov    0x6c(%esi),%ecx
52b4fb:	39 4e 70             	cmp    %ecx,0x70(%esi)
52b4fe:	7f 16                	jg     0x52b516
52b500:	6a 00                	push   $0x0
52b502:	53                   	push   %ebx
52b503:	ff 75 1c             	push   0x1c(%ebp)
52b506:	6a 4f                	push   $0x4f
52b508:	56                   	push   %esi
52b509:	e8 f2 af fd ff       	call   0x506500
52b50e:	8b 55 dc             	mov    -0x24(%ebp),%edx
52b511:	83 c4 14             	add    $0x14,%esp
52b514:	eb 31                	jmp    0x52b547
52b516:	8b 7d 1c             	mov    0x1c(%ebp),%edi
52b519:	8d 41 01             	lea    0x1(%ecx),%eax
52b51c:	89 46 6c             	mov    %eax,0x6c(%esi)
52b51f:	8d 0c 89             	lea    (%ecx,%ecx,4),%ecx
52b522:	8b 46 68             	mov    0x68(%esi),%eax
52b525:	c7 04 88 4f 00 00 00 	movl   $0x4f,(%eax,%ecx,4)
52b52c:	89 7c 88 04          	mov    %edi,0x4(%eax,%ecx,4)
52b530:	c7 44 88 10 00 00 00 	movl   $0x0,0x10(%eax,%ecx,4)
52b537:	00
52b538:	c7 44 88 0c 00 00 00 	movl   $0x0,0xc(%eax,%ecx,4)
52b53f:	00
52b540:	89 5c 88 08          	mov    %ebx,0x8(%eax,%ecx,4)
52b544:	8b 7d c4             	mov    -0x3c(%ebp),%edi
52b547:	8b 45 d0             	mov    -0x30(%ebp),%eax
52b54a:	83 c7 14             	add    $0x14,%edi
52b54d:	8b 4d b4             	mov    -0x4c(%ebp),%ecx
52b550:	43                   	inc    %ebx
52b551:	41                   	inc    %ecx
52b552:	89 7d c4             	mov    %edi,-0x3c(%ebp)
52b555:	89 4d b4             	mov    %ecx,-0x4c(%ebp)
52b558:	0f b7 40 34          	movzwl 0x34(%eax),%eax
52b55c:	3b c8                	cmp    %eax,%ecx
52b55e:	8b 45 d0             	mov    -0x30(%ebp),%eax
52b561:	0f 8c 49 fe ff ff    	jl     0x52b3b0
52b567:	8b 5d cc             	mov    -0x34(%ebp),%ebx
52b56a:	8b 4d d4             	mov    -0x2c(%ebp),%ecx
52b56d:	8b 55 b8             	mov    -0x48(%ebp),%edx
52b570:	0f b7 78 34          	movzwl 0x34(%eax),%edi
52b574:	8b 14 8a             	mov    (%edx,%ecx,4),%edx
52b577:	8b 4e 6c             	mov    0x6c(%esi),%ecx
52b57a:	39 4e 70             	cmp    %ecx,0x70(%esi)
52b57d:	7f 10                	jg     0x52b58f
52b57f:	52                   	push   %edx
52b580:	57                   	push   %edi
52b581:	53                   	push   %ebx
52b582:	6a 5b                	push   $0x5b
52b584:	56                   	push   %esi
52b585:	e8 76 af fd ff       	call   0x506500
52b58a:	83 c4 14             	add    $0x14,%esp
52b58d:	eb 2a                	jmp    0x52b5b9
52b58f:	8d 41 01             	lea    0x1(%ecx),%eax
52b592:	89 46 6c             	mov    %eax,0x6c(%esi)
52b595:	8d 0c 89             	lea    (%ecx,%ecx,4),%ecx
52b598:	8b 46 68             	mov    0x68(%esi),%eax
52b59b:	8b 75 90             	mov    -0x70(%ebp),%esi
52b59e:	c7 04 88 5b 00 00 00 	movl   $0x5b,(%eax,%ecx,4)
52b5a5:	89 5c 88 04          	mov    %ebx,0x4(%eax,%ecx,4)
52b5a9:	89 7c 88 08          	mov    %edi,0x8(%eax,%ecx,4)
52b5ad:	89 54 88 0c          	mov    %edx,0xc(%eax,%ecx,4)
52b5b1:	c7 44 88 10 00 00 00 	movl   $0x0,0x10(%eax,%ecx,4)
52b5b8:	00
52b5b9:	83 7d 20 00          	cmpl   $0x0,0x20(%ebp)
52b5bd:	8b 4d d0             	mov    -0x30(%ebp),%ecx
52b5c0:	8b 45 b0             	mov    -0x50(%ebp),%eax
52b5c3:	74 38                	je     0x52b5fd
52b5c5:	3b c1                	cmp    %ecx,%eax
52b5c7:	75 34                	jne    0x52b5fd
52b5c9:	80 7d 24 00          	cmpb   $0x0,0x24(%ebp)
52b5cd:	75 2e                	jne    0x52b5fd
52b5cf:	8b 4e 0c             	mov    0xc(%esi),%ecx
52b5d2:	8b 55 a4             	mov    -0x5c(%ebp),%edx
52b5d5:	f7 d2                	not    %edx
52b5d7:	8b 41 3c             	mov    0x3c(%ecx),%eax
52b5da:	03 41 38             	add    0x38(%ecx),%eax
52b5dd:	79 10                	jns    0x52b5ef
52b5df:	52                   	push   %edx
52b5e0:	56                   	push   %esi
52b5e1:	51                   	push   %ecx
52b5e2:	e8 b9 81 fe ff       	call   0x5137a0
52b5e7:	83 c4 0c             	add    $0xc,%esp
52b5ea:	e9 2b 0b 00 00       	jmp    0x52c11a