524309:	ff 75 e0             	push   -0x20(%ebp)
52430c:	57                   	push   %edi
52430d:	e8 5e 3e 00 00       	call   0x528170
524312:	89 45 dc             	mov    %eax,-0x24(%ebp)
524315:	8d 45 b4             	lea    -0x4c(%ebp),%eax
524318:	50                   	push   %eax
524319:	8b 45 cc             	mov    -0x34(%ebp),%eax
52431c:	50                   	push   %eax
52431d:	57                   	push   %edi
52431e:	e8 9d c2 fd ff       	call   0x5005c0
524323:	83 c4 24             	add    $0x24,%esp
524326:	89 45 b4             	mov    %eax,-0x4c(%ebp)
524329:	33 c9                	xor    %ecx,%ecx
52432b:	85 db                	test   %ebx,%ebx
52432d:	7e 10                	jle    0x52433f
52432f:	8b 45 b8             	mov    -0x48(%ebp),%eax
524332:	39 0c 88             	cmp    %ecx,(%eax,%ecx,4)
524335:	75 05                	jne    0x52433c
524337:	41                   	inc    %ecx
524338:	3b cb                	cmp    %ebx,%ecx
52433a:	7c f6                	jl     0x524332
52433c:	8b 45 b4             	mov    -0x4c(%ebp),%eax
52433f:	3b cb                	cmp    %ebx,%ecx
524341:	75 07                	jne    0x52434a
524343:	8b c8                	mov    %eax,%ecx
524345:	89 4d ec             	mov    %ecx,-0x14(%ebp)
524348:	eb 78                	jmp    0x5243c2
52434a:	53                   	push   %ebx
52434b:	57                   	push   %edi
52434c:	e8 cf 8b 00 00       	call   0x52cf20
524351:	33 db                	xor    %ebx,%ebx
524353:	83 c4 08             	add    $0x8,%esp
524356:	8b c8                	mov    %eax,%ecx
524358:	89 4d ec             	mov    %ecx,-0x14(%ebp)
52435b:	39 5d e8             	cmp    %ebx,-0x18(%ebp)
52435e:	7e 5f                	jle    0x5243bf
524360:	8b 7d b4             	mov    -0x4c(%ebp),%edi
524363:	8b 45 b8             	mov    -0x48(%ebp),%eax
524366:	8b 14 98             	mov    (%eax,%ebx,4),%edx
524369:	03 d1                	add    %ecx,%edx
52436b:	8b 4e 6c             	mov    0x6c(%esi),%ecx
52436e:	39 4e 70             	cmp    %ecx,0x70(%esi)
524371:	7f 11                	jg     0x524384
524373:	6a 00                	push   $0x0
524375:	52                   	push   %edx
524376:	57                   	push   %edi
524377:	6a 4d                	push   $0x4d
524379:	56                   	push   %esi
52437a:	e8 81 21 fe ff       	call   0x506500
52437f:	83 c4 14             	add    $0x14,%esp
524382:	eb 2e                	jmp    0x5243b2
524384:	8d 41 01             	lea    0x1(%ecx),%eax
524387:	89 46 6c             	mov    %eax,0x6c(%esi)
52438a:	8d 0c 89             	lea    (%ecx,%ecx,4),%ecx
52438d:	8b 46 68             	mov    0x68(%esi),%eax
524390:	8b 75 bc             	mov    -0x44(%ebp),%esi
524393:	c7 04 88 4d 00 00 00 	movl   $0x4d,(%eax,%ecx,4)
52439a:	89 7c 88 04          	mov    %edi,0x4(%eax,%ecx,4)
52439e:	89 54 88 08          	mov    %edx,0x8(%eax,%ecx,4)
5243a2:	c7 44 88 0c 00 00 00 	movl   $0x0,0xc(%eax,%ecx,4)
5243a9:	00
5243aa:	c7 44 88 10 00 00 00 	movl   $0x0,0x10(%eax,%ecx,4)
5243b1:	00
5243b2:	8b 4d ec             	mov    -0x14(%ebp),%ecx
5243b5:	43                   	inc    %ebx
5243b6:	47                   	inc    %edi
5243b7:	3b 5d e8             	cmp    -0x18(%ebp),%ebx
5243ba:	7c a7                	jl     0x524363
5243bc:	8b 7d c4             	mov    -0x3c(%ebp),%edi
5243bf:	8b 5d e8             	mov    -0x18(%ebp),%ebx
5243c2:	83 7d dc 05          	cmpl   $0x5,-0x24(%ebp)
5243c6:	0f 85 fb 04 00 00    	jne    0x5248c7
5243cc:	8b 5d e0             	mov    -0x20(%ebp),%ebx
5243cf:	ff 73 0c             	push   0xc(%ebx)
5243d2:	8b 43 14             	mov    0x14(%ebx),%eax
5243d5:	57                   	push   %edi
5243d6:	89 45 d0             	mov    %eax,-0x30(%ebp)
5243d9:	e8 02 1f 00 00       	call   0x5262e0
5243de:	ff 4f 38             	decl   0x38(%edi)
5243e1:	83 c4 08             	add    $0x8,%esp
5243e4:	89 45 e4             	mov    %eax,-0x1c(%ebp)
5243e7:	8b 47 38             	mov    0x38(%edi),%eax
5243ea:	89 45 d8             	mov    %eax,-0x28(%ebp)
5243ed:	8b 45 d4             	mov    -0x2c(%ebp),%eax
5243f0:	c7 45 e8 00 00 00 00 	movl   $0x0,-0x18(%ebp)
5243f7:	3b 45 f0             	cmp    -0x10(%ebp),%eax
5243fa:	74 69                	je     0x524465
5243fc:	8a 47 13             	mov    0x13(%edi),%al
5243ff:	84 c0                	test   %al,%al
524401:	75 08                	jne    0x52440b
524403:	ff 47 2c             	incl   0x2c(%edi)
524406:	8b 57 2c             	mov    0x2c(%edi),%edx
524409:	eb 0f                	jmp    0x52441a
52440b:	fe c8                	dec    %al
52440d:	88 47 13             	mov    %al,0x13(%edi)
524410:	0f b6 c0             	movzbl %al,%eax
524413:	8b 94 87 94 00 00 00 	mov    0x94(%edi,%eax,4),%edx
52441a:	8b 4e 6c             	mov    0x6c(%esi),%ecx
52441d:	89 55 e8             	mov    %edx,-0x18(%ebp)
524420:	39 4e 70             	cmp    %ecx,0x70(%esi)
524423:	7f 13                	jg     0x524438
524425:	8b 45 ec             	mov    -0x14(%ebp),%eax
524428:	52                   	push   %edx
524429:	50                   	push   %eax
52442a:	50                   	push   %eax
52442b:	6a 65                	push   $0x65
52442d:	56                   	push   %esi
52442e:	e8 cd 20 fe ff       	call   0x506500
524433:	83 c4 14             	add    $0x14,%esp
524436:	eb 2d                	jmp    0x524465
524438:	8b 5d ec             	mov    -0x14(%ebp),%ebx
52443b:	8d 41 01             	lea    0x1(%ecx),%eax
52443e:	89 46 6c             	mov    %eax,0x6c(%esi)
524441:	8d 0c 89             	lea    (%ecx,%ecx,4),%ecx
524444:	8b 46 68             	mov    0x68(%esi),%eax
524447:	89 5c 88 04          	mov    %ebx,0x4(%eax,%ecx,4)
52444b:	89 5c 88 08          	mov    %ebx,0x8(%eax,%ecx,4)
52444f:	8b 5d e0             	mov    -0x20(%ebp),%ebx
524452:	c7 04 88 65 00 00 00 	movl   $0x65,(%eax,%ecx,4)
524459:	89 54 88 0c          	mov    %edx,0xc(%eax,%ecx,4)
52445d:	c7 44 88 10 00 00 00 	movl   $0x0,0x10(%eax,%ecx,4)
524464:	00
524465:	ff 73 0c             	push   0xc(%ebx)
524468:	e8 43 f1 ff ff       	call   0x5235b0
52446d:	33 d2                	xor    %edx,%edx
52446f:	c7 45 dc 00 00 00 00 	movl   $0x0,-0x24(%ebp)
524476:	83 c4 04             	add    $0x4,%esp
524479:	3c 45                	cmp    $0x45,%al
52447b:	8b 45 d0             	mov    -0x30(%ebp),%eax
52447e:	0f 94 c2             	sete   %dl
524481:	89 55 bc             	mov    %edx,-0x44(%ebp)
524484:	83 38 00             	cmpl   $0x0,(%eax)
524487:	0f 8e 4d 03 00 00    	jle    0x5247da
52448d:	8d 48 04             	lea    0x4(%eax),%ecx
524490:	89 4d cc             	mov    %ecx,-0x34(%ebp)
524493:	85 d2                	test   %edx,%edx
524495:	0f 84 cd 00 00 00    	je     0x524568
52449b:	8a 47 13             	mov    0x13(%edi),%al
52449e:	84 c0                	test   %al,%al
5244a0:	75 08                	jne    0x5244aa
5244a2:	ff 47 2c             	incl   0x2c(%edi)
5244a5:	8b 5f 2c             	mov    0x2c(%edi),%ebx
5244a8:	eb 0f                	jmp    0x5244b9
5244aa:	fe c8                	dec    %al
5244ac:	88 47 13             	mov    %al,0x13(%edi)
5244af:	0f b6 c0             	movzbl %al,%eax
5244b2:	8b 9c 87 94 00 00 00 	mov    0x94(%edi,%eax,4),%ebx
5244b9:	53                   	push   %ebx
5244ba:	ff 31                	push   (%ecx)
5244bc:	89 5d e0             	mov    %ebx,-0x20(%ebp)
5244bf:	57                   	push   %edi
5244c0:	89 5d f4             	mov    %ebx,-0xc(%ebp)
5244c3:	e8 08 f7 ff ff       	call   0x523bd0
5244c8:	8b 56 6c             	mov    0x6c(%esi),%edx
5244cb:	83 c4 0c             	add    $0xc,%esp
5244ce:	39 56 70             	cmp    %edx,0x70(%esi)
5244d1:	7f 14                	jg     0x5244e7
5244d3:	6a 00                	push   $0x0
5244d5:	6a 01                	push   $0x1
5244d7:	53                   	push   %ebx
5244d8:	6a 5a                	push   $0x5a
5244da:	56                   	push   %esi
5244db:	e8 20 20 fe ff       	call   0x506500
5244e0:	83 c4 14             	add    $0x14,%esp
5244e3:	8b d0                	mov    %eax,%edx
5244e5:	eb 32                	jmp    0x524519
5244e7:	8b 7d c4             	mov    -0x3c(%ebp),%edi
5244ea:	8d 42 01             	lea    0x1(%edx),%eax
5244ed:	89 46 6c             	mov    %eax,0x6c(%esi)
5244f0:	8d 0c 92             	lea    (%edx,%edx,4),%ecx
5244f3:	8b 46 68             	mov    0x68(%esi),%eax
5244f6:	c7 04 88 5a 00 00 00 	movl   $0x5a,(%eax,%ecx,4)
5244fd:	89 5c 88 04          	mov    %ebx,0x4(%eax,%ecx,4)
524501:	c7 44 88 08 01 00 00 	movl   $0x1,0x8(%eax,%ecx,4)
524508:	00
524509:	c7 44 88 0c 00 00 00 	movl   $0x0,0xc(%eax,%ecx,4)
524510:	00
524511:	c7 44 88 10 00 00 00 	movl   $0x0,0x10(%eax,%ecx,4)
524518:	00
524519:	8b 06                	mov    (%esi),%eax
52451b:	80 78 51 00          	cmpb   $0x0,0x51(%eax)
52451f:	74 0f                	je     0x524530
524521:	68 08 92 6b 00       	push   $0x6b9208
524526:	6a ff                	push   $0xffffffff
524528:	50                   	push   %eax
524529:	e8 82 f7 fd ff       	call   0x503cb0
52452e:	eb 4a                	jmp    0x52457a
524530:	85 d2                	test   %edx,%edx
524532:	79 04                	jns    0x524538
524534:	8b 56 6c             	mov    0x6c(%esi),%edx
524537:	4a                   	dec    %edx
524538:	8b 46 68             	mov    0x68(%esi),%eax
52453b:	8d 0c 92             	lea    (%edx,%edx,4),%ecx
52453e:	80 7c 88 01 00       	cmpb   $0x0,0x1(%eax,%ecx,4)
524543:	8d 04 88             	lea    (%eax,%ecx,4),%eax
524546:	74 13                	je     0x52455b
524548:	6a ff                	push   $0xffffffff
52454a:	68 08 92 6b 00       	push   $0x6b9208
52454f:	50                   	push   %eax
524550:	56                   	push   %esi
524551:	e8 ea 56 03 00       	call   0x559c40
524556:	83 c4 10             	add    $0x10,%esp
524559:	eb 22                	jmp    0x52457d
52455b:	c7 40 10 08 92 6b 00 	movl   $0x6b9208,0x10(%eax)
524562:	c6 40 01 ff          	movb   $0xff,0x1(%eax)
524566:	eb 15                	jmp    0x52457d
524568:	8d 45 e0             	lea    -0x20(%ebp),%eax
52456b:	50                   	push   %eax
52456c:	ff 31                	push   (%ecx)
52456e:	57                   	push   %edi
52456f:	e8 5c 1c 00 00       	call   0x5261d0
524574:	8b 5d e0             	mov    -0x20(%ebp),%ebx
524577:	89 45 f4             	mov    %eax,-0xc(%ebp)
52457a:	83 c4 0c             	add    $0xc,%esp
52457d:	83 7d e8 00          	cmpl   $0x0,-0x18(%ebp)
524581:	74 2c                	je     0x5245af
524583:	8b 45 cc             	mov    -0x34(%ebp),%eax
524586:	ff 30                	push   (%eax)
524588:	e8 d3 f4 ff ff       	call   0x523a60
52458d:	83 c4 04             	add    $0x4,%esp
524590:	85 c0                	test   %eax,%eax
524592:	74 1b                	je     0x5245af
524594:	8b 4e 6c             	mov    0x6c(%esi),%ecx
524597:	39 4e 70             	cmp    %ecx,0x70(%esi)
52459a:	7f 75                	jg     0x524611
52459c:	8b 45 e8             	mov    -0x18(%ebp),%eax
52459f:	50                   	push   %eax
5245a0:	ff 75 f4             	push   -0xc(%ebp)
5245a3:	50                   	push   %eax
5245a4:	6a 65                	push   $0x65
5245a6:	56                   	push   %esi
5245a7:	e8 54 1f fe ff       	call   0x506500
5245ac:	83 c4 14             	add    $0x14,%esp
5245af:	8b 55 f4             	mov    -0xc(%ebp),%edx
5245b2:	85 db                	test   %ebx,%ebx
5245b4:	74 14                	je     0x5245ca
5245b6:	8a 47 13             	mov    0x13(%edi),%al
5245b9:	3c 08                	cmp    $0x8,%al
5245bb:	73 0d                	jae    0x5245ca
5245bd:	0f b6 c0             	movzbl %al,%eax
5245c0:	89 9c 87 94 00 00 00 	mov    %ebx,0x94(%edi,%eax,4)
5245c7:	fe 47 13             	incb   0x13(%edi)
5245ca:	8b 45 d0             	mov    -0x30(%ebp),%eax
5245cd:	8b 00                	mov    (%eax),%eax
5245cf:	48                   	dec    %eax
5245d0:	39 45 dc             	cmp    %eax,-0x24(%ebp)
5245d3:	0f 8c 15 01 00 00    	jl     0x5246ee
5245d9:	8b 4d f0             	mov    -0x10(%ebp),%ecx
5245dc:	39 4d d4             	cmp    %ecx,-0x2c(%ebp)
5245df:	0f 85 09 01 00 00    	jne    0x5246ee
5245e5:	8b 45 ec             	mov    -0x14(%ebp),%eax
5245e8:	33 db                	xor    %ebx,%ebx
5245ea:	3b c2                	cmp    %edx,%eax
5245ec:	8b 56 6c             	mov    0x6c(%esi),%edx
5245ef:	0f 95 c3             	setne  %bl
5245f2:	8d 1c 5d 32 00 00 00 	lea    0x32(,%ebx,2),%ebx
5245f9:	39 56 70             	cmp    %edx,0x70(%esi)
5245fc:	7f 4b                	jg     0x524649
5245fe:	ff 75 f4             	push   -0xc(%ebp)
524601:	51                   	push   %ecx
524602:	50                   	push   %eax
524603:	53                   	push   %ebx
524604:	56                   	push   %esi
524605:	e8 f6 1e fe ff       	call   0x506500
52460a:	83 c4 14             	add    $0x14,%esp
52460d:	8b d0                	mov    %eax,%edx
52460f:	eb 70                	jmp    0x524681
524611:	8b 55 e8             	mov    -0x18(%ebp),%edx
524614:	8d 41 01             	lea    0x1(%ecx),%eax
524617:	8b 7d e8             	mov    -0x18(%ebp),%edi
52461a:	8d 0c 89             	lea    (%ecx,%ecx,4),%ecx
52461d:	89 46 6c             	mov    %eax,0x6c(%esi)
524620:	8b 46 68             	mov    0x68(%esi),%eax
524623:	89 54 88 04          	mov    %edx,0x4(%eax,%ecx,4)
524627:	8b 55 f4             	mov    -0xc(%ebp),%edx
52462a:	89 7c 88 0c          	mov    %edi,0xc(%eax,%ecx,4)
52462e:	8b 7d c4             	mov    -0x3c(%ebp),%edi
524631:	c7 04 88 65 00 00 00 	movl   $0x65,(%eax,%ecx,4)
524638:	89 54 88 08          	mov    %edx,0x8(%eax,%ecx,4)
52463c:	c7 44 88 10 00 00 00 	movl   $0x0,0x10(%eax,%ecx,4)
524643:	00
524644:	e9 69 ff ff ff       	jmp    0x5245b2
524649:	8d 42 01             	lea    0x1(%edx),%eax
52464c:	89 46 6c             	mov    %eax,0x6c(%esi)
52464f:	8d 0c 92             	lea    (%edx,%edx,4),%ecx
524652:	8b 46 68             	mov    0x68(%esi),%eax
524655:	88 1c 88             	mov    %bl,(%eax,%ecx,4)
524658:	33 db                	xor    %ebx,%ebx
52465a:	66 89 5c 88 02       	mov    %bx,0x2(%eax,%ecx,4)
52465f:	8b 5d ec             	mov    -0x14(%ebp),%ebx
524662:	89 5c 88 04          	mov    %ebx,0x4(%eax,%ecx,4)
524666:	8b 5d f0             	mov    -0x10(%ebp),%ebx
524669:	89 5c 88 08          	mov    %ebx,0x8(%eax,%ecx,4)
52466d:	8b 5d f4             	mov    -0xc(%ebp),%ebx
524670:	89 5c 88 0c          	mov    %ebx,0xc(%eax,%ecx,4)
524674:	c7 44 88 10 00 00 00 	movl   $0x0,0x10(%eax,%ecx,4)
52467b:	00
52467c:	c6 44 88 01 00       	movb   $0x0,0x1(%eax,%ecx,4)
524681:	8b 06                	mov    (%esi),%eax
524683:	80 78 51 00          	cmpb   $0x0,0x51(%eax)
524687:	74 10                	je     0x524699
524689:	ff 75 e4             	push   -0x1c(%ebp)
52468c:	6a fe                	push   $0xfffffffe
52468e:	50                   	push   %eax
52468f:	e8 1c f6 fd ff       	call   0x503cb0
524694:	83 c4 0c             	add    $0xc,%esp
524697:	eb 37                	jmp    0x5246d0
524699:	85 d2                	test   %edx,%edx
52469b:	79 04                	jns    0x5246a1
52469d:	8b 56 6c             	mov    0x6c(%esi),%edx
5246a0:	4a                   	dec    %edx
5246a1:	8b 46 68             	mov    0x68(%esi),%eax
5246a4:	8d 0c 92             	lea    (%edx,%edx,4),%ecx
5246a7:	80 7c 88 01 00       	cmpb   $0x0,0x1(%eax,%ecx,4)
5246ac:	8d 04 88             	lea    (%eax,%ecx,4),%eax
5246af:	74 11                	je     0x5246c2
5246b1:	6a fe                	push   $0xfffffffe
5246b3:	ff 75 e4             	push   -0x1c(%ebp)
5246b6:	50                   	push   %eax
5246b7:	56                   	push   %esi
5246b8:	e8 83 55 03 00       	call   0x559c40
5246bd:	83 c4 10             	add    $0x10,%esp
5246c0:	eb 0e                	jmp    0x5246d0
5246c2:	8b 4d e4             	mov    -0x1c(%ebp),%ecx
5246c5:	85 c9                	test   %ecx,%ecx
5246c7:	74 07                	je     0x5246d0
5246c9:	89 48 10             	mov    %ecx,0x10(%eax)
5246cc:	c6 40 01 fe          	movb   $0xfe,0x1(%eax)
5246d0:	8b 4e 6c             	mov    0x6c(%esi),%ecx
5246d3:	85 c9                	test   %ecx,%ecx
5246d5:	0f 8e e1 00 00 00    	jle    0x5247bc
5246db:	8b 45 c0             	mov    -0x40(%ebp),%eax
5246de:	8d 0c 89             	lea    (%ecx,%ecx,4),%ecx
5246e1:	8a 00                	mov    (%eax),%al
5246e3:	0c 10                	or     $0x10,%al
5246e5:	66 0f be d0          	movsbw %al,%dx
5246e9:	e9 c6 00 00 00       	jmp    0x5247b4
5246ee:	8b 45 ec             	mov    -0x14(%ebp),%eax
5246f1:	33 db                	xor    %ebx,%ebx
5246f3:	3b c2                	cmp    %edx,%eax
5246f5:	8b 56 6c             	mov    0x6c(%esi),%edx
5246f8:	0f 95 c3             	setne  %bl
5246fb:	8d 1c 5d 33 00 00 00 	lea    0x33(,%ebx,2),%ebx
524702:	39 56 70             	cmp    %edx,0x70(%esi)
524705:	7f 15                	jg     0x52471c
524707:	ff 75 f4             	push   -0xc(%ebp)
52470a:	ff 75 d8             	push   -0x28(%ebp)
52470d:	50                   	push   %eax
52470e:	53                   	push   %ebx
52470f:	56                   	push   %esi