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
52c645:	66 83 fa fe          	cmp    $0xfffe,%dx
52c649:	75 5d                	jne    0x52c6a8
52c64b:	8d 04 1e             	lea    (%esi,%ebx,1),%eax
52c64e:	50                   	push   %eax
52c64f:	56                   	push   %esi
52c650:	ff 75 10             	push   0x10(%ebp)
52c653:	ff 75 0c             	push   0xc(%ebp)
52c656:	57                   	push   %edi
52c657:	e8 04 8b ff ff       	call   0x525160
52c65c:	8b 55 fc             	mov    -0x4(%ebp),%edx
52c65f:	83 c4 14             	add    $0x14,%esp
52c662:	8b 42 6c             	mov    0x6c(%edx),%eax
52c665:	85 c0                	test   %eax,%eax
52c667:	7e 3c                	jle    0x52c6a5
52c669:	8d 0c 80             	lea    (%eax,%eax,4),%ecx
52c66c:	8b 42 68             	mov    0x68(%edx),%eax
52c66f:	8d 04 88             	lea    (%eax,%ecx,4),%eax
52c672:	83 c0 ec             	add    $0xffffffec,%eax
52c675:	89 45 18             	mov    %eax,0x18(%ebp)
52c678:	80 38 53             	cmpb   $0x53,(%eax)
52c67b:	75 28                	jne    0x52c6a5
52c67d:	8b 0a                	mov    (%edx),%ecx
52c67f:	80 79 51 00          	cmpb   $0x0,0x51(%ecx)
52c683:	75 20                	jne    0x52c6a5
52c685:	ff 70 10             	push   0x10(%eax)
52c688:	0f be 40 01          	movsbl 0x1(%eax),%eax
52c68c:	50                   	push   %eax
52c68d:	51                   	push   %ecx
52c68e:	e8 1d 76 fd ff       	call   0x503cb0
52c693:	8b 45 18             	mov    0x18(%ebp),%eax
52c696:	83 c4 0c             	add    $0xc,%esp
52c699:	66 c7 00 ad 00       	movw   $0xad,(%eax)
52c69e:	c7 40 10 00 00 00 00 	movl   $0x0,0x10(%eax)
52c6a5:	8b 4d 0c             	mov    0xc(%ebp),%ecx
52c6a8:	8b 45 1c             	mov    0x1c(%ebp),%eax
52c6ab:	46                   	inc    %esi
52c6ac:	0f b7 d0             	movzwl %ax,%edx
52c6af:	8b 45 20             	mov    0x20(%ebp),%eax
52c6b2:	3b f2                	cmp    %edx,%esi
52c6b4:	0f 8c 77 ff ff ff    	jl     0x52c631
52c6ba:	8b 45 14             	mov    0x14(%ebp),%eax
52c6bd:	85 c0                	test   %eax,%eax
52c6bf:	0f 84 8e 00 00 00    	je     0x52c753
52c6c5:	8b 75 fc             	mov    -0x4(%ebp),%esi
52c6c8:	8b 4e 6c             	mov    0x6c(%esi),%ecx
52c6cb:	39 4e 70             	cmp    %ecx,0x70(%esi)
52c6ce:	7f 10                	jg     0x52c6e0
52c6d0:	50                   	push   %eax
52c6d1:	52                   	push   %edx
52c6d2:	53                   	push   %ebx
52c6d3:	6a 5b                	push   $0x5b
52c6d5:	56                   	push   %esi
52c6d6:	e8 25 9e fd ff       	call   0x506500
52c6db:	83 c4 14             	add    $0x14,%esp
52c6de:	eb 2a                	jmp    0x52c70a
52c6e0:	8d 41 01             	lea    0x1(%ecx),%eax
52c6e3:	89 46 6c             	mov    %eax,0x6c(%esi)
52c6e6:	8d 0c 89             	lea    (%ecx,%ecx,4),%ecx
52c6e9:	8b 46 68             	mov    0x68(%esi),%eax
52c6ec:	89 54 88 08          	mov    %edx,0x8(%eax,%ecx,4)
52c6f0:	8b 55 14             	mov    0x14(%ebp),%edx
52c6f3:	c7 04 88 5b 00 00 00 	movl   $0x5b,(%eax,%ecx,4)
52c6fa:	89 5c 88 04          	mov    %ebx,0x4(%eax,%ecx,4)
52c6fe:	89 54 88 0c          	mov    %edx,0xc(%eax,%ecx,4)
52c702:	c7 44 88 10 00 00 00 	movl   $0x0,0x10(%eax,%ecx,4)
52c709:	00
52c70a:	8b 4d 0c             	mov    0xc(%ebp),%ecx
52c70d:	8b 41 0c             	mov    0xc(%ecx),%eax
52c710:	83 78 0c 00          	cmpl   $0x0,0xc(%eax)
52c714:	74 3d                	je     0x52c753
52c716:	51                   	push   %ecx
52c717:	ff 37                	push   (%edi)
52c719:	e8 b2 18 00 00       	call   0x52dfd0
52c71e:	8b 0e                	mov    (%esi),%ecx
52c720:	83 c4 08             	add    $0x8,%esp
52c723:	8b d0                	mov    %eax,%edx
52c725:	80 79 51 00          	cmpb   $0x0,0x51(%ecx)
52c729:	74 0e                	je     0x52c739
52c72b:	52                   	push   %edx
52c72c:	6a 00                	push   $0x0
52c72e:	51                   	push   %ecx
52c72f:	e8 7c 75 fd ff       	call   0x503cb0
52c734:	83 c4 0c             	add    $0xc,%esp
52c737:	eb 1a                	jmp    0x52c753
52c739:	8b 46 6c             	mov    0x6c(%esi),%eax
52c73c:	48                   	dec    %eax
52c73d:	6a 00                	push   $0x0
52c73f:	52                   	push   %edx
52c740:	8d 0c 80             	lea    (%eax,%eax,4),%ecx
52c743:	8b 46 68             	mov    0x68(%esi),%eax
52c746:	8d 04 88             	lea    (%eax,%ecx,4),%eax
52c749:	50                   	push   %eax
52c74a:	56                   	push   %esi
52c74b:	e8 f0 d4 02 00       	call   0x559c40
52c750:	83 c4 10             	add    $0x10,%esp
52c753:	8b 4d 1c             	mov    0x1c(%ebp),%ecx
52c756:	0f b7 c1             	movzwl %cx,%eax
52c759:	83 f8 01             	cmp    $0x1,%eax
52c75c:	75 21                	jne    0x52c77f
52c75e:	85 db                	test   %ebx,%ebx
52c760:	74 28                	je     0x52c78a
52c762:	8a 47 13             	mov    0x13(%edi),%al
52c765:	3c 08                	cmp    $0x8,%al
52c767:	73 21                	jae    0x52c78a
52c769:	0f b6 c0             	movzbl %al,%eax
52c76c:	89 9c 87 94 00 00 00 	mov    %ebx,0x94(%edi,%eax,4)
52c773:	8b c3                	mov    %ebx,%eax
52c775:	fe 47 13             	incb   0x13(%edi)
52c778:	5f                   	pop    %edi
52c779:	5e                   	pop    %esi
52c77a:	5b                   	pop    %ebx
52c77b:	8b e5                	mov    %ebp,%esp
52c77d:	5d                   	pop    %ebp
52c77e:	c3                   	ret
52c77f:	3b 47 1c             	cmp    0x1c(%edi),%eax
52c782:	7e 06                	jle    0x52c78a
52c784:	89 47 1c             	mov    %eax,0x1c(%edi)
52c787:	89 5f 20             	mov    %ebx,0x20(%edi)
52c78a:	5f                   	pop    %edi
52c78b:	5e                   	pop    %esi
52c78c:	8b c3                	mov    %ebx,%eax
52c78e:	5b                   	pop    %ebx
52c78f:	8b e5                	mov    %ebp,%esp
52c791:	5d                   	pop    %ebp
52c792:	c3                   	ret
52c793:	cc                   	int3
52c794:	cc                   	int3
52c795:	cc                   	int3
52c796:	cc                   	int3
52c797:	cc                   	int3
52c798:	cc                   	int3
52c799:	cc                   	int3
52c79a:	cc                   	int3
52c79b:	cc                   	int3
52c79c:	cc                   	int3
52c79d:	cc                   	int3
52c79e:	cc                   	int3
52c79f:	cc                   	int3
52c7a0:	55                   	push   %ebp
52c7a1:	8b ec                	mov    %esp,%ebp
52c7a3:	83 ec 14             	sub    $0x14,%esp
52c7a6:	53                   	push   %ebx
52c7a7:	8b 5d 0c             	mov    0xc(%ebp),%ebx
52c7aa:	56                   	push   %esi
52c7ab:	8b 75 08             	mov    0x8(%ebp),%esi
52c7ae:	57                   	push   %edi
52c7af:	c7 45 fc 00 00 00 00 	movl   $0x0,-0x4(%ebp)
52c7b6:	ff 4e 38             	decl   0x38(%esi)
52c7b9:	8b 4b 24             	mov    0x24(%ebx),%ecx
52c7bc:	8b 7e 08             	mov    0x8(%esi),%edi
52c7bf:	80 e1 80             	and    $0x80,%cl
52c7c2:	8b 56 38             	mov    0x38(%esi),%edx
52c7c5:	f6 d9                	neg    %cl
52c7c7:	89 7d f0             	mov    %edi,-0x10(%ebp)
52c7ca:	1a c9                	sbb    %cl,%cl
52c7cc:	89 55 f4             	mov    %edx,-0xc(%ebp)
52c7cf:	80 e1 fd             	and    $0xfd,%cl
52c7d2:	80 c1 20             	add    $0x20,%cl
52c7d5:	80 7d 2c 00          	cmpb   $0x0,0x2c(%ebp)
52c7d9:	89 4d ec             	mov    %ecx,-0x14(%ebp)
52c7dc:	75 1a                	jne    0x52c7f8
52c7de:	66 8b 45 20          	mov    0x20(%ebp),%ax
52c7e2:	98                   	cwtl
52c7e3:	50                   	push   %eax
52c7e4:	ff 75 1c             	push   0x1c(%ebp)
52c7e7:	0f b6 c1             	movzbl %cl,%eax
52c7ea:	52                   	push   %edx
52c7eb:	ff 75 14             	push   0x14(%ebp)
52c7ee:	50                   	push   %eax
52c7ef:	57                   	push   %edi
52c7f0:	e8 1b 54 01 00       	call   0x541c10
52c7f5:	83 c4 18             	add    $0x18,%esp
52c7f8:	6a 00                	push   $0x0
52c7fa:	6a 00                	push   $0x0
52c7fc:	53                   	push   %ebx