535158:	e9 d0 1b 00 00       	jmp    0x536d2d
53515d:	85 c9                	test   %ecx,%ecx
53515f:	75 14                	jne    0x535175
535161:	ff 35 60 ff 72 00    	push   0x72ff60
535167:	56                   	push   %esi
535168:	e8 33 fb fd ff       	call   0x514ca0
53516d:	83 c4 08             	add    $0x8,%esp
535170:	e9 b8 1b 00 00       	jmp    0x536d2d
535175:	80 39 00             	cmpb   $0x0,(%ecx)
535178:	74 33                	je     0x5351ad
53517a:	8b 45 d8             	mov    -0x28(%ebp),%eax
53517d:	8d 55 e8             	lea    -0x18(%ebp),%edx
535180:	52                   	push   %edx
535181:	6a 01                	push   $0x1
535183:	51                   	push   %ecx
535184:	8b 00                	mov    (%eax),%eax
535186:	50                   	push   %eax
535187:	8b 40 20             	mov    0x20(%eax),%eax
53518a:	ff d0                	call   *%eax
53518c:	83 c4 10             	add    $0x10,%esp
53518f:	85 c0                	test   %eax,%eax
535191:	75 05                	jne    0x535198
535193:	39 45 e8             	cmp    %eax,-0x18(%ebp)
535196:	75 15                	jne    0x5351ad
535198:	68 50 ab 6b 00       	push   $0x6bab50
53519d:	ff 75 d4             	push   -0x2c(%ebp)
5351a0:	e8 bb e0 fe ff       	call   0x523260
5351a5:	83 c4 08             	add    $0x8,%esp
5351a8:	e9 80 1b 00 00       	jmp    0x536d2d
5351ad:	8b 45 d8             	mov    -0x28(%ebp),%eax
5351b0:	80 78 50 01          	cmpb   $0x1,0x50(%eax)
5351b4:	77 0b                	ja     0x5351c1
5351b6:	ff 75 d4             	push   -0x2c(%ebp)
5351b9:	e8 b2 22 fd ff       	call   0x507470
5351be:	83 c4 04             	add    $0x4,%esp
5351c1:	ff 35 60 ff 72 00    	push   0x72ff60
5351c7:	e8 c4 5b fb ff       	call   0x4ead90
5351cc:	8b 45 b8             	mov    -0x48(%ebp),%eax
5351cf:	83 c4 04             	add    $0x4,%esp
5351d2:	80 38 00             	cmpb   $0x0,(%eax)
5351d5:	74 18                	je     0x5351ef
5351d7:	50                   	push   %eax
5351d8:	68 04 d0 6a 00       	push   $0x6ad004
5351dd:	e8 6e 53 fb ff       	call   0x4ea550
5351e2:	83 c4 08             	add    $0x8,%esp
5351e5:	a3 60 ff 72 00       	mov    %eax,0x72ff60
5351ea:	e9 3e 1b 00 00       	jmp    0x536d2d
5351ef:	c7 05 60 ff 72 00 00 	movl   $0x0,0x72ff60
5351f6:	00 00 00
5351f9:	e9 2f 1b 00 00       	jmp    0x536d2d
5351fe:	85 c9                	test   %ecx,%ecx
535200:	75 14                	jne    0x535216
535202:	ff 35 64 ff 72 00    	push   0x72ff64
535208:	56                   	push   %esi
535209:	e8 92 fa fd ff       	call   0x514ca0
53520e:	83 c4 08             	add    $0x8,%esp
535211:	e9 17 1b 00 00       	jmp    0x536d2d
535216:	80 39 00             	cmpb   $0x0,(%ecx)
535219:	74 26                	je     0x535241
53521b:	8b 45 d8             	mov    -0x28(%ebp),%eax
53521e:	8d 55 e8             	lea    -0x18(%ebp),%edx
535221:	52                   	push   %edx
535222:	6a 01                	push   $0x1
535224:	51                   	push   %ecx
535225:	8b 00                	mov    (%eax),%eax
535227:	50                   	push   %eax
535228:	8b 40 20             	mov    0x20(%eax),%eax
53522b:	ff d0                	call   *%eax
53522d:	83 c4 10             	add    $0x10,%esp
535230:	85 c0                	test   %eax,%eax
535232:	0f 85 60 ff ff ff    	jne    0x535198
535238:	39 45 e8             	cmp    %eax,-0x18(%ebp)
53523b:	0f 84 57 ff ff ff    	je     0x535198
535241:	ff 35 64 ff 72 00    	push   0x72ff64
535247:	e8 44 5b fb ff       	call   0x4ead90
53524c:	8b 45 b8             	mov    -0x48(%ebp),%eax
53524f:	83 c4 04             	add    $0x4,%esp
535252:	80 38 00             	cmpb   $0x0,(%eax)
535255:	74 18                	je     0x53526f
535257:	50                   	push   %eax
535258:	68 04 d0 6a 00       	push   $0x6ad004
53525d:	e8 ee 52 fb ff       	call   0x4ea550
535262:	83 c4 08             	add    $0x8,%esp
535265:	a3 64 ff 72 00       	mov    %eax,0x72ff64
53526a:	e9 be 1a 00 00       	jmp    0x536d2d
53526f:	c7 05 64 ff 72 00 00 	movl   $0x0,0x72ff64
535276:	00 00 00
535279:	e9 af 1a 00 00       	jmp    0x536d2d
53527e:	85 c9                	test   %ecx,%ecx
535280:	75 0a                	jne    0x53528c
535282:	0f b6 47 08          	movzbl 0x8(%edi),%eax
535286:	48                   	dec    %eax
535287:	e9 95 1a 00 00       	jmp    0x536d21
53528c:	8b 45 d8             	mov    -0x28(%ebp),%eax
53528f:	80 78 4f 00          	cmpb   $0x0,0x4f(%eax)
535293:	75 15                	jne    0x5352aa
535295:	68 6c ab 6b 00       	push   $0x6bab6c
53529a:	ff 75 d4             	push   -0x2c(%ebp)
53529d:	e8 be df fe ff       	call   0x523260
5352a2:	83 c4 08             	add    $0x8,%esp
5352a5:	e9 83 1a 00 00       	jmp    0x536d2d
5352aa:	83 7d c4 01          	cmpl   $0x1,-0x3c(%ebp)
5352ae:	0f 84 79 1a 00 00    	je     0x536d2d
5352b4:	6a 01                	push   $0x1
5352b6:	6a 00                	push   $0x0
5352b8:	51                   	push   %ecx
5352b9:	e8 e2 10 fd ff       	call   0x5063a0
5352be:	ff 75 d8             	push   -0x28(%ebp)
5352c1:	40                   	inc    %eax
5352c2:	b9 01 00 00 00       	mov    $0x1,%ecx
5352c7:	83 e0 07             	and    $0x7,%eax
5352ca:	88 4f 09             	mov    %cl,0x9(%edi)
5352cd:	0f 44 c1             	cmove  %ecx,%eax
5352d0:	88 47 08             	mov    %al,0x8(%edi)
5352d3:	e8 d8 1b fe ff       	call   0x516eb0
5352d8:	83 c4 10             	add    $0x10,%esp
5352db:	e9 4d 1a 00 00       	jmp    0x536d2d
5352e0:	85 c9                	test   %ecx,%ecx
5352e2:	75 40                	jne    0x535324
5352e4:	53                   	push   %ebx
5352e5:	56                   	push   %esi
5352e6:	e8 25 1e fe ff       	call   0x517110
5352eb:	8b 55 d8             	mov    -0x28(%ebp),%edx
5352ee:	83 c4 08             	add    $0x8,%esp
5352f1:	8b 4b 08             	mov    0x8(%ebx),%ecx
5352f4:	8b 43 0c             	mov    0xc(%ebx),%eax
5352f7:	23 4a 20             	and    0x20(%edx),%ecx
5352fa:	23 42 24             	and    0x24(%edx),%eax
5352fd:	0b c8                	or     %eax,%ecx
5352ff:	74 0e                	je     0x53530f
535301:	33 c0                	xor    %eax,%eax
535303:	b9 01 00 00 00       	mov    $0x1,%ecx
535308:	50                   	push   %eax
535309:	51                   	push   %ecx
53530a:	e9 15 1a 00 00       	jmp    0x536d24
53530f:	0f 57 c0             	xorps  %xmm0,%xmm0
535312:	66 0f 13 45 e0       	movlpd %xmm0,-0x20(%ebp)
535317:	8b 45 e4             	mov    -0x1c(%ebp),%eax
53531a:	8b 4d e0             	mov    -0x20(%ebp),%ecx
53531d:	50                   	push   %eax
53531e:	51                   	push   %ecx
53531f:	e9 00 1a 00 00       	jmp    0x536d24
535324:	8b 43 08             	mov    0x8(%ebx),%eax
535327:	8b 7b 0c             	mov    0xc(%ebx),%edi
53532a:	89 45 d0             	mov    %eax,-0x30(%ebp)
53532d:	8b 45 d8             	mov    -0x28(%ebp),%eax
535330:	8b 5d d0             	mov    -0x30(%ebp),%ebx
535333:	80 78 4f 00          	cmpb   $0x0,0x4f(%eax)
535337:	75 06                	jne    0x53533f
535339:	81 e3 ff bf ff ff    	and    $0xffffbfff,%ebx
53533f:	6a 00                	push   $0x0
535341:	51                   	push   %ecx
535342:	e8 69 79 ff ff       	call   0x52ccb0
535347:	83 c4 08             	add    $0x8,%esp
53534a:	84 c0                	test   %al,%al
53534c:	74 0b                	je     0x535359
53534e:	8b 45 d8             	mov    -0x28(%ebp),%eax
535351:	09 58 20             	or     %ebx,0x20(%eax)
535354:	09 78 24             	or     %edi,0x24(%eax)
535357:	eb 29                	jmp    0x535382
535359:	8b 55 d8             	mov    -0x28(%ebp),%edx
53535c:	8b cb                	mov    %ebx,%ecx
53535e:	8b c7                	mov    %edi,%eax
535360:	f7 d1                	not    %ecx
535362:	f7 d0                	not    %eax
535364:	21 4a 20             	and    %ecx,0x20(%edx)
535367:	21 42 24             	and    %eax,0x24(%edx)
53536a:	81 fb 00 00 08 00    	cmp    $0x80000,%ebx
535370:	75 10                	jne    0x535382
535372:	85 ff                	test   %edi,%edi
535374:	75 0c                	jne    0x535382
535376:	89 ba f0 01 00 00    	mov    %edi,0x1f0(%edx)
53537c:	89 ba f4 01 00 00    	mov    %edi,0x1f4(%edx)
535382:	68 9e 00 00 00       	push   $0x9e
535387:	56                   	push   %esi
535388:	e8 93 c6 00 00       	call   0x541a20
53538d:	ff 75 d8             	push   -0x28(%ebp)
535390:	e8 1b 1b fe ff       	call   0x516eb0
535395:	e9 90 19 00 00       	jmp    0x536d2a
53539a:	85 c9                	test   %ecx,%ecx
53539c:	0f 84 8b 19 00 00    	je     0x536d2d
5353a2:	ff 75 ac             	push   -0x54(%ebp)
5353a5:	51                   	push   %ecx
5353a6:	6a 02                	push   $0x2
5353a8:	ff 75 d4             	push   -0x2c(%ebp)
5353ab:	e8 40 b7 ff ff       	call   0x530af0
5353b0:	8b f8                	mov    %eax,%edi
5353b2:	83 c4 10             	add    $0x10,%esp
5353b5:	89 7d bc             	mov    %edi,-0x44(%ebp)
5353b8:	85 ff                	test   %edi,%edi
5353ba:	0f 84 6d 19 00 00    	je     0x536d2d
5353c0:	ff 77 48             	push   0x48(%edi)
5353c3:	ff 75 d8             	push   -0x28(%ebp)
5353c6:	e8 95 46 00 00       	call   0x539a60
5353cb:	57                   	push   %edi
5353cc:	8b d0                	mov    %eax,%edx
5353ce:	c7 45 cc 00 00 00 00 	movl   $0x0,-0x34(%ebp)
5353d5:	e8 f6 1f 00 00       	call   0x5373d0
5353da:	89 45 d0             	mov    %eax,-0x30(%ebp)
5353dd:	8b 45 d4             	mov    -0x2c(%ebp),%eax
5353e0:	52                   	push   %edx
5353e1:	50                   	push   %eax
5353e2:	c7 40 2c 07 00 00 00 	movl   $0x7,0x2c(%eax)
5353e9:	e8 f2 9e fe ff       	call   0x51f2e0
5353ee:	57                   	push   %edi
5353ef:	ff 75 d4             	push   -0x2c(%ebp)
5353f2:	e8 e9 87 01 00       	call   0x54dbe0
5353f7:	8b 57 04             	mov    0x4(%edi),%edx
5353fa:	33 c9                	xor    %ecx,%ecx
5353fc:	0f b7 47 2a          	movzwl 0x2a(%edi),%eax
535400:	83 c4 1c             	add    $0x1c,%esp
535403:	33 ff                	xor    %edi,%edi
535405:	89 4d c8             	mov    %ecx,-0x38(%ebp)
535408:	89 55 b4             	mov    %edx,-0x4c(%ebp)
53540b:	66 3b f8             	cmp    %ax,%di
53540e:	0f 8d 19 19 00 00    	jge    0x536d2d
535414:	0f b7 42 10          	movzwl 0x10(%edx),%eax
535418:	33 ff                	xor    %edi,%edi
53541a:	a8 62                	test   $0x62,%al
53541c:	74 2b                	je     0x535449
53541e:	8b 43 08             	mov    0x8(%ebx),%eax
535421:	0b 43 0c             	or     0xc(%ebx),%eax
535424:	75 08                	jne    0x53542e
535426:	ff 45 cc             	incl   -0x34(%ebp)
535429:	e9 cd 00 00 00       	jmp    0x5354fb
53542e:	0f b7 42 10          	movzwl 0x10(%edx),%eax
535432:	a8 20                	test   $0x20,%al
535434:	74 07                	je     0x53543d
535436:	bf 02 00 00 00       	mov    $0x2,%edi
53543b:	eb 0c                	jmp    0x535449
53543d:	0f b6 f8             	movzbl %al,%edi
535440:	83 e7 40             	and    $0x40,%edi
535443:	83 cf 20             	or     $0x20,%edi
535446:	c1 ef 05             	shr    $0x5,%edi
535449:	a8 01                	test   $0x1,%al
53544b:	75 04                	jne    0x535451
53544d:	33 c9                	xor    %ecx,%ecx
53544f:	eb 3c                	jmp    0x53548d
535451:	83 7d d0 00          	cmpl   $0x0,-0x30(%ebp)
535455:	b9 01 00 00 00       	mov    $0x1,%ecx
53545a:	74 31                	je     0x53548d
53545c:	8b 75 bc             	mov    -0x44(%ebp),%esi
53545f:	0f b7 46 2a          	movzwl 0x2a(%esi),%eax
535463:	8b 75 a4             	mov    -0x5c(%ebp),%esi
535466:	98                   	cwtl
535467:	89 45 e8             	mov    %eax,-0x18(%ebp)
53546a:	3b c1                	cmp    %ecx,%eax
53546c:	7c 1f                	jl     0x53548d
53546e:	8b 45 d0             	mov    -0x30(%ebp),%eax
535471:	8b 75 e8             	mov    -0x18(%ebp),%esi
535474:	8b 50 04             	mov    0x4(%eax),%edx
535477:	0f bf 02             	movswl (%edx),%eax
53547a:	3b 45 c8             	cmp    -0x38(%ebp),%eax
53547d:	74 08                	je     0x535487
53547f:	41                   	inc    %ecx
535480:	83 c2 02             	add    $0x2,%edx
535483:	3b ce                	cmp    %esi,%ecx
535485:	7e f0                	jle    0x535477
535487:	8b 75 a4             	mov    -0x5c(%ebp),%esi
53548a:	8b 55 b4             	mov    -0x4c(%ebp),%edx
53548d:	8b 42 04             	mov    0x4(%edx),%eax
535490:	85 c0                	test   %eax,%eax
535492:	74 0d                	je     0x5354a1
535494:	83 ff 02             	cmp    $0x2,%edi
535497:	73 08                	jae    0x5354a1
535499:	8b 40 08             	mov    0x8(%eax),%eax
53549c:	89 45 9c             	mov    %eax,-0x64(%ebp)
53549f:	eb 07                	jmp    0x5354a8
5354a1:	c7 45 9c 00 00 00 00 	movl   $0x0,-0x64(%ebp)
5354a8:	8b 43 08             	mov    0x8(%ebx),%eax
5354ab:	0b 43 0c             	or     0xc(%ebx),%eax
5354ae:	c7 45 b0 a4 ab 6b 00 	movl   $0x6baba4,-0x50(%ebp)
5354b5:	75 07                	jne    0x5354be
5354b7:	c7 45 b0 ac ab 6b 00 	movl   $0x6babac,-0x50(%ebp)
5354be:	57                   	push   %edi
5354bf:	33 c0                	xor    %eax,%eax
5354c1:	38 42 0c             	cmp    %al,0xc(%edx)
5354c4:	51                   	push   %ecx
5354c5:	ff 75 9c             	push   -0x64(%ebp)
5354c8:	0f 95 c0             	setne  %al
5354cb:	50                   	push   %eax
5354cc:	68 ad 57 6e 00       	push   $0x6e57ad
5354d1:	52                   	push   %edx
5354d2:	e8 f9 9f fe ff       	call   0x51f4d0
5354d7:	83 c4 08             	add    $0x8,%esp
5354da:	50                   	push   %eax
5354db:	8b 45 b4             	mov    -0x4c(%ebp),%eax
5354de:	ff 30                	push   (%eax)
5354e0:	8b 45 c8             	mov    -0x38(%ebp),%eax
5354e3:	2b 45 cc             	sub    -0x34(%ebp),%eax
5354e6:	50                   	push   %eax
5354e7:	ff 75 b0             	push   -0x50(%ebp)
5354ea:	6a 01                	push   $0x1
5354ec:	56                   	push   %esi
5354ed:	e8 3e 6e 01 00       	call   0x54c330
5354f2:	8b 4d c8             	mov    -0x38(%ebp),%ecx
5354f5:	83 c4 28             	add    $0x28,%esp
5354f8:	8b 55 b4             	mov    -0x4c(%ebp),%edx
5354fb:	8b 45 bc             	mov    -0x44(%ebp),%eax
5354fe:	41                   	inc    %ecx
5354ff:	83 c2 14             	add    $0x14,%edx
535502:	89 4d c8             	mov    %ecx,-0x38(%ebp)
535505:	89 55 b4             	mov    %edx,-0x4c(%ebp)
535508:	0f b7 40 2a          	movzwl 0x2a(%eax),%eax
53550c:	98                   	cwtl
53550d:	3b c8                	cmp    %eax,%ecx
53550f:	0f 8c ff fe ff ff    	jl     0x535414
535515:	e9 13 18 00 00       	jmp    0x536d2d
53551a:	85 c9                	test   %ecx,%ecx
53551c:	0f 84 0b 18 00 00    	je     0x536d2d
535522:	ff 75 ac             	push   -0x54(%ebp)
535525:	51                   	push   %ecx
535526:	ff 75 d8             	push   -0x28(%ebp)
535529:	e8 f2 33 ff ff       	call   0x528920
53552e:	8b f8                	mov    %eax,%edi
535530:	83 c4 0c             	add    $0xc,%esp
535533:	89 7d cc             	mov    %edi,-0x34(%ebp)
535536:	85 ff                	test   %edi,%edi
535538:	75 3b                	jne    0x535575
53553a:	ff 75 ac             	push   -0x54(%ebp)
53553d:	ff 75 b8             	push   -0x48(%ebp)
535540:	6a 02                	push   $0x2
535542:	ff 75 d4             	push   -0x2c(%ebp)
535545:	e8 a6 b5 ff ff       	call   0x530af0
53554a:	83 c4 10             	add    $0x10,%esp
53554d:	85 c0                	test   %eax,%eax
53554f:	0f 84 d8 17 00 00    	je     0x536d2d
535555:	f6 40 24 80          	testb  $0x80,0x24(%eax)
535559:	0f 84 ce 17 00 00    	je     0x536d2d
53555f:	50                   	push   %eax
535560:	e8 6b 1e 00 00       	call   0x5373d0
535565:	8b f8                	mov    %eax,%edi
535567:	89 45 cc             	mov    %eax,-0x34(%ebp)
53556a:	83 c4 04             	add    $0x4,%esp
53556d:	85 ff                	test   %edi,%edi
53556f:	0f 84 b8 17 00 00    	je     0x536d2d
535575:	ff 77 18             	push   0x18(%edi)
535578:	ff 75 d8             	push   -0x28(%ebp)
53557b:	e8 e0 44 00 00       	call   0x539a60
535580:	8b 4b 08             	mov    0x8(%ebx),%ecx
535583:	83 c4 08             	add    $0x8,%esp
535586:	0b 4b 0c             	or     0xc(%ebx),%ecx
535589:	8b d0                	mov    %eax,%edx
53558b:	74 12                	je     0x53559f
53558d:	8b 45 d4             	mov    -0x2c(%ebp),%eax
535590:	0f b7 4f 34          	movzwl 0x34(%edi),%ecx
535594:	c7 40 2c 06 00 00 00 	movl   $0x6,0x2c(%eax)
53559b:	8b c1                	mov    %ecx,%eax
53559d:	eb 0e                	jmp    0x5355ad
53559f:	8b 4d d4             	mov    -0x2c(%ebp),%ecx