52515c:	5d                   	pop    %ebp
52515d:	c3                   	ret
52515e:	cc                   	int3
52515f:	cc                   	int3
525160:	55                   	push   %ebp
525161:	8b ec                	mov    %esp,%ebp
525163:	8b 55 0c             	mov    0xc(%ebp),%edx
525166:	8b 4d 14             	mov    0x14(%ebp),%ecx
525169:	8b 42 04             	mov    0x4(%edx),%eax
52516c:	0f b7 04 48          	movzwl (%eax,%ecx,2),%eax
525170:	66 83 f8 fe          	cmp    $0xfffe,%ax
525174:	75 5e                	jne    0x5251d4
525176:	8b 45 10             	mov    0x10(%ebp),%eax
525179:	8d 0c 89             	lea    (%ecx,%ecx,4),%ecx
52517c:	53                   	push   %ebx
52517d:	8b 5d 08             	mov    0x8(%ebp),%ebx
525180:	40                   	inc    %eax
525181:	56                   	push   %esi
525182:	57                   	push   %edi
525183:	8b 3b                	mov    (%ebx),%edi
525185:	89 43 34             	mov    %eax,0x34(%ebx)
525188:	8b 42 28             	mov    0x28(%edx),%eax
52518b:	8b 44 88 04          	mov    0x4(%eax,%ecx,4),%eax
52518f:	85 c0                	test   %eax,%eax
525191:	74 12                	je     0x5251a5
525193:	6a 00                	push   $0x0
525195:	6a 00                	push   $0x0
525197:	50                   	push   %eax
525198:	57                   	push   %edi
525199:	e8 c2 b6 fd ff       	call   0x500860
52519e:	83 c4 10             	add    $0x10,%esp
5251a1:	8b f0                	mov    %eax,%esi
5251a3:	eb 02                	jmp    0x5251a7
5251a5:	33 f6                	xor    %esi,%esi
5251a7:	80 7f 51 00          	cmpb   $0x0,0x51(%edi)
5251ab:	75 0d                	jne    0x5251ba
5251ad:	ff 75 18             	push   0x18(%ebp)
5251b0:	56                   	push   %esi
5251b1:	53                   	push   %ebx
5251b2:	e8 19 ea ff ff       	call   0x523bd0
5251b7:	83 c4 0c             	add    $0xc,%esp
5251ba:	85 f6                	test   %esi,%esi
5251bc:	74 0a                	je     0x5251c8
5251be:	56                   	push   %esi
5251bf:	57                   	push   %edi
5251c0:	e8 eb 15 00 00       	call   0x5267b0
5251c5:	83 c4 08             	add    $0x8,%esp
5251c8:	5f                   	pop    %edi
5251c9:	5e                   	pop    %esi
5251ca:	c7 43 34 00 00 00 00 	movl   $0x0,0x34(%ebx)
5251d1:	5b                   	pop    %ebx
5251d2:	5d                   	pop    %ebp
5251d3:	c3                   	ret
5251d4:	ff 75 18             	push   0x18(%ebp)
5251d7:	98                   	cwtl
5251d8:	50                   	push   %eax
5251d9:	ff 75 10             	push   0x10(%ebp)
5251dc:	8b 45 08             	mov    0x8(%ebp),%eax
5251df:	ff 72 0c             	push   0xc(%edx)
5251e2:	ff 70 08             	push   0x8(%eax)
5251e5:	e8 d6 ee ff ff       	call   0x5240c0
5251ea:	83 c4 14             	add    $0x14,%esp
5251ed:	5d                   	pop    %ebp
5251ee:	c3                   	ret
5251ef:	cc                   	int3
5251f0:	55                   	push   %ebp
5251f1:	8b ec                	mov    %esp,%ebp
5251f3:	8b 45 08             	mov    0x8(%ebp),%eax
5251f6:	8b 50 08             	mov    0x8(%eax),%edx
5251f9:	8b 4a 6c             	mov    0x6c(%edx),%ecx
5251fc:	39 4a 70             	cmp    %ecx,0x70(%edx)
5251ff:	7f 16                	jg     0x525217
525201:	ff 75 14             	push   0x14(%ebp)
525204:	ff 75 10             	push   0x10(%ebp)
525207:	ff 75 0c             	push   0xc(%ebp)
52520a:	6a 4c                	push   $0x4c
52520c:	52                   	push   %edx
52520d:	e8 ee 12 fe ff       	call   0x506500
525212:	83 c4 14             	add    $0x14,%esp
525215:	5d                   	pop    %ebp
525216:	c3                   	ret
525217:	8d 41 01             	lea    0x1(%ecx),%eax
52521a:	89 42 6c             	mov    %eax,0x6c(%edx)
52521d:	8d 0c 89             	lea    (%ecx,%ecx,4),%ecx
525220:	8b 42 68             	mov    0x68(%edx),%eax
525223:	c7 04 88 4c 00 00 00 	movl   $0x4c,(%eax,%ecx,4)
52522a:	c7 44 88 10 00 00 00 	movl   $0x0,0x10(%eax,%ecx,4)
525231:	00
525232:	8d 0c 88             	lea    (%eax,%ecx,4),%ecx
525235:	8b 45 0c             	mov    0xc(%ebp),%eax
525238:	89 41 04             	mov    %eax,0x4(%ecx)
52523b:	8b 45 10             	mov    0x10(%ebp),%eax
52523e:	89 41 08             	mov    %eax,0x8(%ecx)
525241:	8b 45 14             	mov    0x14(%ebp),%eax
525244:	89 41 0c             	mov    %eax,0xc(%ecx)
525247:	5d                   	pop    %ebp
525248:	c3                   	ret
525249:	cc                   	int3
52524a:	cc                   	int3
52524b:	cc                   	int3
52524c:	cc                   	int3
52524d:	cc                   	int3
52524e:	cc                   	int3
52524f:	cc                   	int3
525250:	55                   	push   %ebp
525251:	8b ec                	mov    %esp,%ebp
525253:	81 ec 98 00 00 00    	sub    $0x98,%esp
525259:	a1 d4 89 72 00       	mov    0x7289d4,%eax
52525e:	33 c5                	xor    %ebp,%eax
525260:	89 45 fc             	mov    %eax,-0x4(%ebp)
525263:	53                   	push   %ebx
525264:	8b 5d 08             	mov    0x8(%ebp),%ebx
525267:	56                   	push   %esi
525268:	57                   	push   %edi
525269:	8b 7d 0c             	mov    0xc(%ebp),%edi
52526c:	8b 73 08             	mov    0x8(%ebx),%esi
52526f:	89 5d 80             	mov    %ebx,-0x80(%ebp)
525272:	89 7d 90             	mov    %edi,-0x70(%ebp)
525275:	89 75 84             	mov    %esi,-0x7c(%ebp)
525278:	c7 45 8c 00 00 00 00 	movl   $0x0,-0x74(%ebp)
52527f:	c7 85 78 ff ff ff 00 	movl   $0x0,-0x88(%ebp)
525286:	00 00 00
525289:	c7 85 70 ff ff ff 00 	movl   $0x0,-0x90(%ebp)
525290:	00 00 00
525293:	85 f6                	test   %esi,%esi
525295:	0f 84 91 01 00 00    	je     0x52542c
52529b:	0f 1f 44 00 00       	nopl   0x0(%eax,%eax,1)
5252a0:	ba 77 00 00 00       	mov    $0x77,%edx
5252a5:	85 ff                	test   %edi,%edi
5252a7:	74 03                	je     0x5252ac
5252a9:	0f b6 17             	movzbl (%edi),%edx
5252ac:	8d 42 ed             	lea    -0x13(%edx),%eax
5252af:	89 55 88             	mov    %edx,-0x78(%ebp)
5252b2:	3d 9f 00 00 00       	cmp    $0x9f,%eax
5252b7:	0f 87 d5 0d 00 00    	ja     0x526092
5252bd:	0f b6 80 30 61 52 00 	movzbl 0x526130(%eax),%eax
5252c4:	ff 24 85 b8 60 52 00 	jmp    *0x5260b8(,%eax,4)
5252cb:	8b 7f 0c             	mov    0xc(%edi),%edi
5252ce:	89 7d 90             	mov    %edi,-0x70(%ebp)
5252d1:	eb cd                	jmp    0x5252a0
5252d3:	0f bf 47 22          	movswl 0x22(%edi),%eax
5252d7:	8b 57 28             	mov    0x28(%edi),%edx
5252da:	8d 0c 40             	lea    (%eax,%eax,2),%ecx
5252dd:	80 3a 00             	cmpb   $0x0,(%edx)
5252e0:	8b 42 1c             	mov    0x1c(%edx),%eax
5252e3:	8d 04 c8             	lea    (%eax,%ecx,8),%eax
5252e6:	75 14                	jne    0x5252fc
5252e8:	8b 40 10             	mov    0x10(%eax),%eax
5252eb:	5f                   	pop    %edi
5252ec:	5e                   	pop    %esi
5252ed:	5b                   	pop    %ebx
5252ee:	8b 4d fc             	mov    -0x4(%ebp),%ecx
5252f1:	33 cd                	xor    %ebp,%ecx
5252f3:	e8 e2 c1 0b 00       	call   0x5e14da
5252f8:	8b e5                	mov    %ebp,%esp
5252fa:	5d                   	pop    %ebp
5252fb:	c3                   	ret
5252fc:	80 7a 01 00          	cmpb   $0x0,0x1(%edx)
525300:	74 28                	je     0x52532a
525302:	8b 5d 10             	mov    0x10(%ebp),%ebx
525305:	53                   	push   %ebx
525306:	ff 70 0c             	push   0xc(%eax)
525309:	ff 72 08             	push   0x8(%edx)
52530c:	6a 59                	push   $0x59
52530e:	56                   	push   %esi
52530f:	e8 2c c8 01 00       	call   0x541b40
525314:	83 c4 14             	add    $0x14,%esp
525317:	8b c3                	mov    %ebx,%eax
525319:	5f                   	pop    %edi
52531a:	5e                   	pop    %esi
52531b:	5b                   	pop    %ebx
52531c:	8b 4d fc             	mov    -0x4(%ebp),%ecx
52531f:	33 cd                	xor    %ebp,%ecx
525321:	e8 b4 c1 0b 00       	call   0x5e14da
525326:	8b e5                	mov    %ebp,%esp
525328:	5d                   	pop    %ebp
525329:	c3                   	ret
52532a:	f6 47 04 08          	testb  $0x8,0x4(%edi)
52532e:	8b 4f 1c             	mov    0x1c(%edi),%ecx
525331:	0f 84 81 00 00 00    	je     0x5253b8
525337:	8b 75 10             	mov    0x10(%ebp),%esi
52533a:	56                   	push   %esi
52533b:	ff 77 0c             	push   0xc(%edi)
52533e:	53                   	push   %ebx
52533f:	e8 0c ff ff ff       	call   0x525250
525344:	8b 57 2c             	mov    0x2c(%edi),%edx
525347:	83 c4 0c             	add    $0xc,%esp
52534a:	8b c8                	mov    %eax,%ecx
52534c:	89 4d 80             	mov    %ecx,-0x80(%ebp)
52534f:	85 d2                	test   %edx,%edx
525351:	74 13                	je     0x525366
525353:	0f bf 47 20          	movswl 0x20(%edi),%eax
525357:	50                   	push   %eax
525358:	52                   	push   %edx
525359:	e8 a2 8a 01 00       	call   0x53de00
52535e:	8b 4d 80             	mov    -0x80(%ebp),%ecx
525361:	83 c4 08             	add    $0x8,%esp
525364:	eb 03                	jmp    0x525369
525366:	8a 47 01             	mov    0x1(%edi),%al
525369:	0f be f8             	movsbl %al,%edi
52536c:	83 ff 41             	cmp    $0x41,%edi
52536f:	7e 33                	jle    0x5253a4
525371:	8b 5d 84             	mov    -0x7c(%ebp),%ebx
525374:	3b ce                	cmp    %esi,%ecx
525376:	74 12                	je     0x52538a
525378:	56                   	push   %esi
525379:	51                   	push   %ecx
52537a:	6a 4e                	push   $0x4e
52537c:	53                   	push   %ebx
52537d:	e8 5e c7 01 00       	call   0x541ae0
525382:	8b ce                	mov    %esi,%ecx
525384:	83 c4 10             	add    $0x10,%esp
525387:	89 4d 80             	mov    %ecx,-0x80(%ebp)
52538a:	6a ff                	push   $0xffffffff
52538c:	8d 04 7d f0 1d 6b 00 	lea    0x6b1df0(,%edi,2),%eax
525393:	50                   	push   %eax
525394:	6a 00                	push   $0x0
525396:	6a 01                	push   $0x1
525398:	51                   	push   %ecx
525399:	6a 5a                	push   $0x5a
52539b:	53                   	push   %ebx
52539c:	e8 ef c7 01 00       	call   0x541b90
5253a1:	83 c4 1c             	add    $0x1c,%esp
5253a4:	8b 45 80             	mov    -0x80(%ebp),%eax
5253a7:	5f                   	pop    %edi
5253a8:	5e                   	pop    %esi
5253a9:	5b                   	pop    %ebx
5253aa:	8b 4d fc             	mov    -0x4(%ebp),%ecx
5253ad:	33 cd                	xor    %ebp,%ecx
5253af:	e8 26 c1 0b 00       	call   0x5e14da
5253b4:	8b e5                	mov    %ebp,%esp
5253b6:	5d                   	pop    %ebp
5253b7:	c3                   	ret
5253b8:	85 c9                	test   %ecx,%ecx
5253ba:	0f 89 eb 00 00 00    	jns    0x5254ab
5253c0:	8b 43 34             	mov    0x34(%ebx),%eax
5253c3:	85 c0                	test   %eax,%eax
5253c5:	0f 89 dd 00 00 00    	jns    0x5254a8
5253cb:	0f bf 57 20          	movswl 0x20(%edi),%edx
5253cf:	8b 4f 2c             	mov    0x2c(%edi),%ecx
5253d2:	89 4d 90             	mov    %ecx,-0x70(%ebp)
5253d5:	85 d2                	test   %edx,%edx
5253d7:	79 13                	jns    0x5253ec
5253d9:	5f                   	pop    %edi
5253da:	5e                   	pop    %esi
5253db:	f7 d0                	not    %eax
5253dd:	5b                   	pop    %ebx
5253de:	8b 4d fc             	mov    -0x4(%ebp),%ecx
5253e1:	33 cd                	xor    %ebp,%ecx
5253e3:	e8 f2 c0 0b 00       	call   0x5e14da
5253e8:	8b e5                	mov    %ebp,%esp
5253ea:	5d                   	pop    %ebp
5253eb:	c3                   	ret
5253ec:	8b 47 2c             	mov    0x2c(%edi),%eax
5253ef:	8d 0c 92             	lea    (%edx,%edx,4),%ecx
5253f2:	52                   	push   %edx
5253f3:	ff 75 90             	push   -0x70(%ebp)
5253f6:	8b 40 04             	mov    0x4(%eax),%eax
5253f9:	8d 3c 88             	lea    (%eax,%ecx,4),%edi
5253fc:	e8 4f 8a 01 00       	call   0x53de50
525401:	0f bf c8             	movswl %ax,%ecx
525404:	83 c4 08             	add    $0x8,%esp
525407:	2b 4b 34             	sub    0x34(%ebx),%ecx
52540a:	0f b7 47 10          	movzwl 0x10(%edi),%eax
52540e:	89 4d 90             	mov    %ecx,-0x70(%ebp)
525411:	a8 60                	test   $0x60,%al
525413:	74 61                	je     0x525476
525415:	a9 00 01 00 00       	test   $0x100,%eax
52541a:	74 23                	je     0x52543f
52541c:	ff 37                	push   (%edi)
52541e:	68 28 92 6b 00       	push   $0x6b9228
525423:	53                   	push   %ebx
525424:	e8 37 de ff ff       	call   0x523260
525429:	83 c4 0c             	add    $0xc,%esp
52542c:	5f                   	pop    %edi
52542d:	5e                   	pop    %esi
52542e:	33 c0                	xor    %eax,%eax
525430:	5b                   	pop    %ebx
525431:	8b 4d fc             	mov    -0x4(%ebp),%ecx
525434:	33 cd                	xor    %ebp,%ecx
525436:	e8 9f c0 0b 00       	call   0x5e14da
52543b:	8b e5                	mov    %ebp,%esp
52543d:	5d                   	pop    %ebp
52543e:	c3                   	ret
52543f:	0d 00 01 00 00       	or     $0x100,%eax
525444:	66 89 47 10          	mov    %ax,0x10(%edi)
525448:	84 c0                	test   %al,%al
52544a:	79 0e                	jns    0x52545a
52544c:	51                   	push   %ecx
52544d:	57                   	push   %edi
52544e:	53                   	push   %ebx
52544f:	e8 2c eb ff ff       	call   0x523f80
525454:	8b 4d 90             	mov    -0x70(%ebp),%ecx
525457:	83 c4 0c             	add    $0xc,%esp
52545a:	b8 7f fe 00 00       	mov    $0xfe7f,%eax
52545f:	66 21 47 10          	and    %ax,0x10(%edi)
525463:	5f                   	pop    %edi
525464:	5e                   	pop    %esi
525465:	8b c1                	mov    %ecx,%eax
525467:	5b                   	pop    %ebx
525468:	8b 4d fc             	mov    -0x4(%ebp),%ecx
52546b:	33 cd                	xor    %ebp,%ecx
52546d:	e8 68 c0 0b 00       	call   0x5e14da
525472:	8b e5                	mov    %ebp,%esp
525474:	5d                   	pop    %ebp
525475:	c3                   	ret
525476:	80 7f 0d 45          	cmpb   $0x45,0xd(%edi)
52547a:	75 e7                	jne    0x525463
52547c:	8b 5d 10             	mov    0x10(%ebp),%ebx
52547f:	53                   	push   %ebx
525480:	51                   	push   %ecx
525481:	6a 4e                	push   $0x4e
525483:	56                   	push   %esi
525484:	e8 57 c6 01 00       	call   0x541ae0
525489:	53                   	push   %ebx
52548a:	6a 53                	push   $0x53
52548c:	56                   	push   %esi
52548d:	e8 ee c5 01 00       	call   0x541a80
525492:	83 c4 1c             	add    $0x1c,%esp
525495:	8b c3                	mov    %ebx,%eax
525497:	5f                   	pop    %edi
525498:	5e                   	pop    %esi
525499:	5b                   	pop    %ebx
52549a:	8b 4d fc             	mov    -0x4(%ebp),%ecx
52549d:	33 cd                	xor    %ebp,%ecx
52549f:	e8 36 c0 0b 00       	call   0x5e14da
5254a4:	8b e5                	mov    %ebp,%esp
5254a6:	5d                   	pop    %ebp
5254a7:	c3                   	ret
5254a8:	8d 48 ff             	lea    -0x1(%eax),%ecx
5254ab:	0f b6 47 02          	movzbl 0x2(%edi),%eax
5254af:	50                   	push   %eax
5254b0:	ff 75 10             	push   0x10(%ebp)
5254b3:	0f bf 47 20          	movswl 0x20(%edi),%eax
5254b7:	51                   	push   %ecx
5254b8:	50                   	push   %eax
5254b9:	ff 77 2c             	push   0x2c(%edi)
5254bc:	53                   	push   %ebx
5254bd:	e8 9e eb ff ff       	call   0x524060
5254c2:	83 c4 18             	add    $0x18,%esp
5254c5:	8b d8                	mov    %eax,%ebx
5254c7:	83 7f 2c 00          	cmpl   $0x0,0x2c(%edi)
5254cb:	0f 85 d2 0b 00 00    	jne    0x5260a3
5254d1:	80 7f 01 45          	cmpb   $0x45,0x1(%edi)
5254d5:	0f 85 c8 0b 00 00    	jne    0x5260a3
5254db:	53                   	push   %ebx
5254dc:	6a 53                	push   $0x53
5254de:	56                   	push   %esi
5254df:	e8 9c c5 01 00       	call   0x541a80
5254e4:	83 c4 0c             	add    $0xc,%esp