52c273:	8b 46 68             	mov    0x68(%esi),%eax
52c276:	66 89 54 88 ee       	mov    %dx,-0x12(%eax,%ecx,4)
52c27b:	8b 4e 6c             	mov    0x6c(%esi),%ecx
52c27e:	39 4e 70             	cmp    %ecx,0x70(%esi)
52c281:	7f 14                	jg     0x52c297
52c283:	ff 75 1c             	push   0x1c(%ebp)
52c286:	57                   	push   %edi
52c287:	ff 75 14             	push   0x14(%ebp)
52c28a:	6a 20                	push   $0x20
52c28c:	56                   	push   %esi
52c28d:	e8 6e a2 fd ff       	call   0x506500
52c292:	83 c4 14             	add    $0x14,%esp
52c295:	eb 2d                	jmp    0x52c2c4
52c297:	8b 55 14             	mov    0x14(%ebp),%edx
52c29a:	8d 41 01             	lea    0x1(%ecx),%eax
52c29d:	89 46 6c             	mov    %eax,0x6c(%esi)
52c2a0:	8d 0c 89             	lea    (%ecx,%ecx,4),%ecx
52c2a3:	8b 46 68             	mov    0x68(%esi),%eax
52c2a6:	89 54 88 04          	mov    %edx,0x4(%eax,%ecx,4)
52c2aa:	8b 55 1c             	mov    0x1c(%ebp),%edx
52c2ad:	c7 04 88 20 00 00 00 	movl   $0x20,(%eax,%ecx,4)
52c2b4:	89 7c 88 08          	mov    %edi,0x8(%eax,%ecx,4)
52c2b8:	89 54 88 0c          	mov    %edx,0xc(%eax,%ecx,4)
52c2bc:	c7 44 88 10 00 00 00 	movl   $0x0,0x10(%eax,%ecx,4)
52c2c3:	00
52c2c4:	8b 55 d8             	mov    -0x28(%ebp),%edx
52c2c7:	0f b7 42 28          	movzwl 0x28(%edx),%eax
52c2cb:	66 85 c0             	test   %ax,%ax
52c2ce:	78 27                	js     0x52c2f7
52c2d0:	98                   	cwtl
52c2d1:	8d 0c 80             	lea    (%eax,%eax,4),%ecx
52c2d4:	8b 42 04             	mov    0x4(%edx),%eax
52c2d7:	ff 34 88             	push   (%eax,%ecx,4)
52c2da:	8b 45 dc             	mov    -0x24(%ebp),%eax
52c2dd:	ff 32                	push   (%edx)
52c2df:	68 24 9d 6b 00       	push   $0x6b9d24
52c2e4:	ff 30                	push   (%eax)
52c2e6:	e8 55 4c 00 00       	call   0x530f40
52c2eb:	83 c4 10             	add    $0x10,%esp
52c2ee:	c7 45 88 13 06 00 00 	movl   $0x613,-0x78(%ebp)
52c2f5:	eb 1b                	jmp    0x52c312
52c2f7:	ff 32                	push   (%edx)
52c2f9:	8b 45 dc             	mov    -0x24(%ebp),%eax
52c2fc:	68 08 a7 6b 00       	push   $0x6ba708
52c301:	ff 30                	push   (%eax)
52c303:	e8 38 4c 00 00       	call   0x530f40
52c308:	83 c4 0c             	add    $0xc,%esp
52c30b:	c7 45 88 13 0a 00 00 	movl   $0xa13,-0x78(%ebp)
52c312:	8b 55 dc             	mov    -0x24(%ebp),%edx
52c315:	8b d8                	mov    %eax,%ebx
52c317:	8b 7a 08             	mov    0x8(%edx),%edi
52c31a:	85 ff                	test   %edi,%edi
52c31c:	75 1f                	jne    0x52c33d
52c31e:	39 7a 74             	cmp    %edi,0x74(%edx)
52c321:	75 0c                	jne    0x52c32f
52c323:	8b 02                	mov    (%edx),%eax
52c325:	f6 40 4c 08          	testb  $0x8,0x4c(%eax)
52c329:	75 04                	jne    0x52c32f
52c32b:	c6 42 17 01          	movb   $0x1,0x17(%edx)
52c32f:	52                   	push   %edx
52c330:	e8 db 60 01 00       	call   0x542410
52c335:	8b 55 dc             	mov    -0x24(%ebp),%edx
52c338:	83 c4 04             	add    $0x4,%esp
52c33b:	8b f8                	mov    %eax,%edi
52c33d:	8b 4a 74             	mov    0x74(%edx),%ecx
52c340:	85 c9                	test   %ecx,%ecx
52c342:	0f 45 d1             	cmovne %ecx,%edx
52c345:	c6 42 15 01          	movb   $0x1,0x15(%edx)
52c349:	8b 57 6c             	mov    0x6c(%edi),%edx
52c34c:	89 95 50 ff ff ff    	mov    %edx,-0xb0(%ebp)
52c352:	39 57 70             	cmp    %edx,0x70(%edi)
52c355:	7f 16                	jg     0x52c36d
52c357:	6a 00                	push   $0x0
52c359:	6a 02                	push   $0x2
52c35b:	ff 75 88             	push   -0x78(%ebp)
52c35e:	6a 44                	push   $0x44
52c360:	57                   	push   %edi
52c361:	e8 9a a1 fd ff       	call   0x506500
52c366:	83 c4 14             	add    $0x14,%esp
52c369:	8b d0                	mov    %eax,%edx
52c36b:	eb 38                	jmp    0x52c3a5
52c36d:	8d 42 01             	lea    0x1(%edx),%eax
52c370:	89 47 6c             	mov    %eax,0x6c(%edi)
52c373:	8d 0c 92             	lea    (%edx,%edx,4),%ecx
52c376:	8b 47 68             	mov    0x68(%edi),%eax
52c379:	8b 55 88             	mov    -0x78(%ebp),%edx
52c37c:	89 54 88 04          	mov    %edx,0x4(%eax,%ecx,4)
52c380:	8b 95 50 ff ff ff    	mov    -0xb0(%ebp),%edx
52c386:	c7 04 88 44 00 00 00 	movl   $0x44,(%eax,%ecx,4)
52c38d:	c7 44 88 08 02 00 00 	movl   $0x2,0x8(%eax,%ecx,4)
52c394:	00
52c395:	c7 44 88 0c 00 00 00 	movl   $0x0,0xc(%eax,%ecx,4)
52c39c:	00
52c39d:	c7 44 88 10 00 00 00 	movl   $0x0,0x10(%eax,%ecx,4)
52c3a4:	00
52c3a5:	8b 07                	mov    (%edi),%eax
52c3a7:	80 78 51 00          	cmpb   $0x0,0x51(%eax)
52c3ab:	74 0e                	je     0x52c3bb
52c3ad:	53                   	push   %ebx
52c3ae:	6a f9                	push   $0xfffffff9
52c3b0:	50                   	push   %eax
52c3b1:	e8 fa 78 fd ff       	call   0x503cb0
52c3b6:	83 c4 0c             	add    $0xc,%esp
52c3b9:	eb 32                	jmp    0x52c3ed
52c3bb:	85 d2                	test   %edx,%edx
52c3bd:	79 04                	jns    0x52c3c3
52c3bf:	8b 57 6c             	mov    0x6c(%edi),%edx
52c3c2:	4a                   	dec    %edx
52c3c3:	8b 47 68             	mov    0x68(%edi),%eax
52c3c6:	8d 0c 92             	lea    (%edx,%edx,4),%ecx
52c3c9:	80 7c 88 01 00       	cmpb   $0x0,0x1(%eax,%ecx,4)
52c3ce:	8d 04 88             	lea    (%eax,%ecx,4),%eax
52c3d1:	75 0d                	jne    0x52c3e0
52c3d3:	85 db                	test   %ebx,%ebx
52c3d5:	74 16                	je     0x52c3ed
52c3d7:	89 58 10             	mov    %ebx,0x10(%eax)
52c3da:	c6 40 01 f9          	movb   $0xf9,0x1(%eax)
52c3de:	eb 0d                	jmp    0x52c3ed
52c3e0:	6a f9                	push   $0xfffffff9
52c3e2:	53                   	push   %ebx
52c3e3:	50                   	push   %eax
52c3e4:	57                   	push   %edi
52c3e5:	e8 56 d8 02 00       	call   0x559c40
52c3ea:	83 c4 10             	add    $0x10,%esp
52c3ed:	8b 47 6c             	mov    0x6c(%edi),%eax
52c3f0:	8b 5d 94             	mov    -0x6c(%ebp),%ebx
52c3f3:	85 c0                	test   %eax,%eax
52c3f5:	7e 5b                	jle    0x52c452
52c3f7:	8d 0c 80             	lea    (%eax,%eax,4),%ecx
52c3fa:	ba 02 00 00 00       	mov    $0x2,%edx
52c3ff:	8b 47 68             	mov    0x68(%edi),%eax
52c402:	66 89 54 88 ee       	mov    %dx,-0x12(%eax,%ecx,4)
52c407:	eb 49                	jmp    0x52c452
52c409:	8b 4e 6c             	mov    0x6c(%esi),%ecx
52c40c:	39 4e 70             	cmp    %ecx,0x70(%esi)
52c40f:	7f 12                	jg     0x52c423
52c411:	6a 00                	push   $0x0
52c413:	57                   	push   %edi
52c414:	6a 00                	push   $0x0
52c416:	6a 0b                	push   $0xb
52c418:	56                   	push   %esi
52c419:	e8 e2 a0 fd ff       	call   0x506500
52c41e:	83 c4 14             	add    $0x14,%esp
52c421:	eb 2f                	jmp    0x52c452
52c423:	8d 41 01             	lea    0x1(%ecx),%eax
52c426:	89 46 6c             	mov    %eax,0x6c(%esi)
52c429:	8d 0c 89             	lea    (%ecx,%ecx,4),%ecx
52c42c:	8b 46 68             	mov    0x68(%esi),%eax
52c42f:	c7 04 88 0b 00 00 00 	movl   $0xb,(%eax,%ecx,4)
52c436:	c7 44 88 04 00 00 00 	movl   $0x0,0x4(%eax,%ecx,4)
52c43d:	00
52c43e:	89 7c 88 08          	mov    %edi,0x8(%eax,%ecx,4)
52c442:	c7 44 88 0c 00 00 00 	movl   $0x0,0xc(%eax,%ecx,4)
52c449:	00
52c44a:	c7 44 88 10 00 00 00 	movl   $0x0,0x10(%eax,%ecx,4)
52c451:	00
52c452:	8b 4e 0c             	mov    0xc(%esi),%ecx
52c455:	f7 d3                	not    %ebx
52c457:	8b 41 3c             	mov    0x3c(%ecx),%eax
52c45a:	03 41 38             	add    0x38(%ecx),%eax
52c45d:	79 0d                	jns    0x52c46c
52c45f:	53                   	push   %ebx
52c460:	56                   	push   %esi
52c461:	51                   	push   %ecx
52c462:	e8 39 73 fe ff       	call   0x5137a0
52c467:	83 c4 0c             	add    $0xc,%esp
52c46a:	eb 09                	jmp    0x52c475
52c46c:	8b 49 40             	mov    0x40(%ecx),%ecx
52c46f:	8b 46 6c             	mov    0x6c(%esi),%eax
52c472:	89 04 99             	mov    %eax,(%ecx,%ebx,4)
52c475:	8b 45 d8             	mov    -0x28(%ebp),%eax
52c478:	f6 40 24 80          	testb  $0x80,0x24(%eax)
52c47c:	75 67                	jne    0x52c4e5
52c47e:	8b 4d d4             	mov    -0x2c(%ebp),%ecx
52c481:	8b 55 b8             	mov    -0x48(%ebp),%edx
52c484:	8b 5d 1c             	mov    0x1c(%ebp),%ebx
52c487:	0f bf 78 2c          	movswl 0x2c(%eax),%edi
52c48b:	43                   	inc    %ebx
52c48c:	8b 14 8a             	mov    (%edx,%ecx,4),%edx
52c48f:	8b 4e 6c             	mov    0x6c(%esi),%ecx
52c492:	39 4e 70             	cmp    %ecx,0x70(%esi)
52c495:	7f 10                	jg     0x52c4a7
52c497:	52                   	push   %edx
52c498:	57                   	push   %edi
52c499:	53                   	push   %ebx
52c49a:	6a 5b                	push   $0x5b
52c49c:	56                   	push   %esi
52c49d:	e8 5e a0 fd ff       	call   0x506500
52c4a2:	83 c4 14             	add    $0x14,%esp
52c4a5:	eb 2a                	jmp    0x52c4d1
52c4a7:	8d 41 01             	lea    0x1(%ecx),%eax
52c4aa:	89 46 6c             	mov    %eax,0x6c(%esi)
52c4ad:	8d 0c 89             	lea    (%ecx,%ecx,4),%ecx
52c4b0:	8b 46 68             	mov    0x68(%esi),%eax
52c4b3:	8b 75 90             	mov    -0x70(%ebp),%esi
52c4b6:	c7 04 88 5b 00 00 00 	movl   $0x5b,(%eax,%ecx,4)
52c4bd:	89 5c 88 04          	mov    %ebx,0x4(%eax,%ecx,4)
52c4c1:	89 7c 88 08          	mov    %edi,0x8(%eax,%ecx,4)
52c4c5:	89 54 88 0c          	mov    %edx,0xc(%eax,%ecx,4)
52c4c9:	c7 44 88 10 00 00 00 	movl   $0x0,0x10(%eax,%ecx,4)
52c4d0:	00
52c4d1:	80 7d af 00          	cmpb   $0x0,-0x51(%ebp)
52c4d5:	75 0e                	jne    0x52c4e5
52c4d7:	6a 00                	push   $0x0
52c4d9:	ff 75 d8             	push   -0x28(%ebp)
52c4dc:	56                   	push   %esi
52c4dd:	e8 5e 18 01 00       	call   0x53dd40
52c4e2:	83 c4 0c             	add    $0xc,%esp
52c4e5:	8b 8d 5c ff ff ff    	mov    -0xa4(%ebp),%ecx
52c4eb:	8b 85 70 ff ff ff    	mov    -0x90(%ebp),%eax
52c4f1:	5f                   	pop    %edi
52c4f2:	5e                   	pop    %esi
52c4f3:	89 01                	mov    %eax,(%ecx)
52c4f5:	8b 4d fc             	mov    -0x4(%ebp),%ecx
52c4f8:	33 cd                	xor    %ebp,%ecx
52c4fa:	5b                   	pop    %ebx
52c4fb:	e8 da 4f 0b 00       	call   0x5e14da
52c500:	8b e5                	mov    %ebp,%esp
52c502:	5d                   	pop    %ebp
52c503:	c3                   	ret
52c504:	4a                   	dec    %edx
52c505:	a7                   	cmpsl  %es:(%edi),%ds:(%esi)
52c506:	52                   	push   %edx
52c507:	00 3b                	add    %bh,(%ebx)
52c509:	a7                   	cmpsl  %es:(%edi),%ds:(%esi)
52c50a:	52                   	push   %edx
52c50b:	00 4a a7             	add    %cl,-0x59(%edx)
52c50e:	52                   	push   %edx
52c50f:	00 f7                	add    %dh,%bh
52c511:	a7                   	cmpsl  %es:(%edi),%ds:(%esi)
52c512:	52                   	push   %edx
52c513:	00 ba a6 52 00 b3    	add    %bh,-0x4cffad5a(%edx)
52c519:	af                   	scas   %es:(%edi),%eax
52c51a:	52                   	push   %edx
52c51b:	00 b3 af 52 00 b3    	add    %dh,-0x4cffad51(%ebx)
52c521:	af                   	scas   %es:(%edi),%eax
52c522:	52                   	push   %edx
52c523:	00 58 af             	add    %bl,-0x51(%eax)
52c526:	52                   	push   %edx
52c527:	00 a7 ae 52 00 41    	add    %ah,0x410052ae(%edi)
52c52d:	af                   	scas   %es:(%edi),%eax
52c52e:	52                   	push   %edx
52c52f:	00 bb bb 52 00 bb    	add    %bh,-0x44ffad45(%ebx)
52c535:	bb 52 00 bb bb       	mov    $0xbbbb0052,%ebx
52c53a:	52                   	push   %edx
52c53b:	00 f1                	add    %dh,%cl
52c53d:	bb 52 00 4a bc       	mov    $0xbc4a0052,%ebx
52c542:	52                   	push   %edx
52c543:	00 d0                	add    %dl,%al
52c545:	bb 52 00 cc cc       	mov    $0xcccc0052,%ebx
52c54a:	cc                   	int3
52c54b:	cc                   	int3
52c54c:	cc                   	int3
52c54d:	cc                   	int3
52c54e:	cc                   	int3
52c54f:	cc                   	int3
52c550:	55                   	push   %ebp
52c551:	8b ec                	mov    %esp,%ebp
52c553:	51                   	push   %ecx
52c554:	8b 55 1c             	mov    0x1c(%ebp),%edx
52c557:	8b 4d 0c             	mov    0xc(%ebp),%ecx
52c55a:	53                   	push   %ebx
52c55b:	56                   	push   %esi
52c55c:	57                   	push   %edi
52c55d:	8b 7d 08             	mov    0x8(%ebp),%edi
52c560:	8b 47 08             	mov    0x8(%edi),%eax
52c563:	89 45 fc             	mov    %eax,-0x4(%ebp)
52c566:	85 d2                	test   %edx,%edx
52c568:	74 6f                	je     0x52c5d9
52c56a:	83 79 24 00          	cmpl   $0x0,0x24(%ecx)
52c56e:	74 63                	je     0x52c5d3
52c570:	ff 4f 38             	decl   0x38(%edi)
52c573:	8b 47 38             	mov    0x38(%edi),%eax
52c576:	89 02                	mov    %eax,(%edx)
52c578:	8b 45 10             	mov    0x10(%ebp),%eax
52c57b:	8b 1f                	mov    (%edi),%ebx
52c57d:	40                   	inc    %eax
52c57e:	89 47 34             	mov    %eax,0x34(%edi)
52c581:	8b 41 24             	mov    0x24(%ecx),%eax
52c584:	8b 12                	mov    (%edx),%edx
52c586:	89 55 20             	mov    %edx,0x20(%ebp)
52c589:	85 c0                	test   %eax,%eax
52c58b:	74 15                	je     0x52c5a2
52c58d:	6a 00                	push   $0x0
52c58f:	6a 00                	push   $0x0
52c591:	50                   	push   %eax
52c592:	53                   	push   %ebx
52c593:	e8 c8 42 fd ff       	call   0x500860
52c598:	8b 55 20             	mov    0x20(%ebp),%edx
52c59b:	83 c4 10             	add    $0x10,%esp
52c59e:	8b f0                	mov    %eax,%esi
52c5a0:	eb 02                	jmp    0x52c5a4
52c5a2:	33 f6                	xor    %esi,%esi
52c5a4:	80 7b 51 00          	cmpb   $0x0,0x51(%ebx)
52c5a8:	75 0d                	jne    0x52c5b7
52c5aa:	6a 10                	push   $0x10
52c5ac:	52                   	push   %edx
52c5ad:	56                   	push   %esi
52c5ae:	57                   	push   %edi
52c5af:	e8 fc a4 ff ff       	call   0x526ab0
52c5b4:	83 c4 10             	add    $0x10,%esp
52c5b7:	85 f6                	test   %esi,%esi
52c5b9:	74 0a                	je     0x52c5c5
52c5bb:	56                   	push   %esi
52c5bc:	53                   	push   %ebx
52c5bd:	e8 ee a1 ff ff       	call   0x5267b0
52c5c2:	83 c4 08             	add    $0x8,%esp
52c5c5:	8b 4d 0c             	mov    0xc(%ebp),%ecx
52c5c8:	33 c0                	xor    %eax,%eax
52c5ca:	c7 47 34 00 00 00 00 	movl   $0x0,0x34(%edi)
52c5d1:	eb 09                	jmp    0x52c5dc
52c5d3:	c7 02 00 00 00 00    	movl   $0x0,(%edx)
52c5d9:	8b 45 20             	mov    0x20(%ebp),%eax
52c5dc:	83 7d 18 00          	cmpl   $0x0,0x18(%ebp)
52c5e0:	89 45 20             	mov    %eax,0x20(%ebp)
52c5e3:	74 0c                	je     0x52c5f1
52c5e5:	f6 41 38 08          	testb  $0x8,0x38(%ecx)
52c5e9:	74 06                	je     0x52c5f1
52c5eb:	0f b7 41 32          	movzwl 0x32(%ecx),%eax
52c5ef:	eb 04                	jmp    0x52c5f5
52c5f1:	0f b7 41 34          	movzwl 0x34(%ecx),%eax
52c5f5:	89 45 1c             	mov    %eax,0x1c(%ebp)
52c5f8:	0f b7 c0             	movzwl %ax,%eax
52c5fb:	50                   	push   %eax
52c5fc:	57                   	push   %edi
52c5fd:	e8 1e 09 00 00       	call   0x52cf20
52c602:	8b d8                	mov    %eax,%ebx
52c604:	83 c4 08             	add    $0x8,%esp
52c607:	8b 45 20             	mov    0x20(%ebp),%eax
52c60a:	85 c0                	test   %eax,%eax
52c60c:	74 10                	je     0x52c61e
52c60e:	3b 5d 24             	cmp    0x24(%ebp),%ebx
52c611:	75 06                	jne    0x52c619
52c613:	83 78 24 00          	cmpl   $0x0,0x24(%eax)
52c617:	74 05                	je     0x52c61e
52c619:	33 c0                	xor    %eax,%eax
52c61b:	89 45 20             	mov    %eax,0x20(%ebp)
52c61e:	8b 4d 1c             	mov    0x1c(%ebp),%ecx
52c621:	33 f6                	xor    %esi,%esi
52c623:	0f b7 d1             	movzwl %cx,%edx
52c626:	85 d2                	test   %edx,%edx
52c628:	0f 84 8c 00 00 00    	je     0x52c6ba
52c62e:	8b 4d 0c             	mov    0xc(%ebp),%ecx
52c631:	85 c0                	test   %eax,%eax
52c633:	74 16                	je     0x52c64b
52c635:	8b 40 04             	mov    0x4(%eax),%eax
52c638:	0f b7 14 70          	movzwl (%eax,%esi,2),%edx
52c63c:	8b 41 04             	mov    0x4(%ecx),%eax
52c63f:	66 3b 14 70          	cmp    (%eax,%esi,2),%dx
52c643:	75 06                	jne    0x52c64b