52c264:	eb 0b                	jmp    0x52c271
52c266:	8b ce                	mov    %esi,%ecx
52c268:	c1 e9 07             	shr    $0x7,%ecx
52c26b:	8a 99 a7 9a 69 00    	mov    0x699aa7(%ecx),%bl
52c271:	81 e3 ff 00 00 00    	and    $0xff,%ebx
52c277:	8b 0c 24             	mov    (%esp),%ecx
52c27a:	0f b7 7c 99 02       	movzwl 0x2(%ecx,%ebx,4),%edi
52c27f:	b9 10 00 00 00       	mov    $0x10,%ecx
52c284:	2b cf                	sub    %edi,%ecx
52c286:	3b 88 b4 16 00 00    	cmp    0x16b4(%eax),%ecx
52c28c:	0f 8d 81 00 00 00    	jge    0x52c313
52c292:	8b 0c 24             	mov    (%esp),%ecx
52c295:	83 ef 10             	sub    $0x10,%edi
52c298:	0f b7 0c 99          	movzwl (%ecx,%ebx,4),%ecx
52c29c:	89 4c 24 10          	mov    %ecx,0x10(%esp)
52c2a0:	66 8b 6c 24 10       	mov    0x10(%esp),%bp
52c2a5:	8b 88 b4 16 00 00    	mov    0x16b4(%eax),%ecx
52c2ab:	66 d3 e5             	shl    %cl,%bp
52c2ae:	66 09 a8 b0 16 00 00 	or     %bp,0x16b0(%eax)
52c2b5:	8b 48 14             	mov    0x14(%eax),%ecx
52c2b8:	ff 40 14             	incl   0x14(%eax)
52c2bb:	8b 68 08             	mov    0x8(%eax),%ebp
52c2be:	8d 4c 0d 00          	lea    0x0(%ebp,%ecx,1),%ecx
52c2c2:	51                   	push   %ecx
52c2c3:	5d                   	pop    %ebp
52c2c4:	8a 88 b0 16 00 00    	mov    0x16b0(%eax),%cl
52c2ca:	80 e1 ff             	and    $0xff,%cl
52c2cd:	88 4d 00             	mov    %cl,0x0(%ebp)
52c2d0:	8b 48 14             	mov    0x14(%eax),%ecx
52c2d3:	ff 40 14             	incl   0x14(%eax)
52c2d6:	8b 68 08             	mov    0x8(%eax),%ebp
52c2d9:	8d 4c 0d 00          	lea    0x0(%ebp,%ecx,1),%ecx
52c2dd:	51                   	push   %ecx
52c2de:	0f b7 88 b0 16 00 00 	movzwl 0x16b0(%eax),%ecx
52c2e5:	5d                   	pop    %ebp
52c2e6:	c1 f9 08             	sar    $0x8,%ecx
52c2e9:	88 4d 00             	mov    %cl,0x0(%ebp)
52c2ec:	b9 10 00 00 00       	mov    $0x10,%ecx
52c2f1:	0f b7 6c 24 10       	movzwl 0x10(%esp),%ebp
52c2f6:	2b 88 b4 16 00 00    	sub    0x16b4(%eax),%ecx
52c2fc:	d3 fd                	sar    %cl,%ebp
52c2fe:	66 89 a8 b0 16 00 00 	mov    %bp,0x16b0(%eax)
52c305:	03 b8 b4 16 00 00    	add    0x16b4(%eax),%edi
52c30b:	89 b8 b4 16 00 00    	mov    %edi,0x16b4(%eax)
52c311:	eb 1e                	jmp    0x52c331
52c313:	8b 88 b4 16 00 00    	mov    0x16b4(%eax),%ecx
52c319:	8b 2c 24             	mov    (%esp),%ebp
52c31c:	66 8b 6c 9d 00       	mov    0x0(%ebp,%ebx,4),%bp
52c321:	66 d3 e5             	shl    %cl,%bp
52c324:	66 09 a8 b0 16 00 00 	or     %bp,0x16b0(%eax)
52c32b:	01 b8 b4 16 00 00    	add    %edi,0x16b4(%eax)
52c331:	8b 0c 9d b0 92 69 00 	mov    0x6992b0(,%ebx,4),%ecx
52c338:	85 c9                	test   %ecx,%ecx
52c33a:	0f 84 99 00 00 00    	je     0x52c3d9
52c340:	2b 34 9d e0 98 69 00 	sub    0x6998e0(,%ebx,4),%esi
52c347:	8b d9                	mov    %ecx,%ebx
52c349:	b9 10 00 00 00       	mov    $0x10,%ecx
52c34e:	2b cb                	sub    %ebx,%ecx
52c350:	8b b8 b4 16 00 00    	mov    0x16b4(%eax),%edi
52c356:	3b cf                	cmp    %edi,%ecx
52c358:	7d 69                	jge    0x52c3c3
52c35a:	8b cf                	mov    %edi,%ecx
52c35c:	8b fe                	mov    %esi,%edi
52c35e:	66 d3 e7             	shl    %cl,%di
52c361:	66 09 b8 b0 16 00 00 	or     %di,0x16b0(%eax)
52c368:	8b 48 14             	mov    0x14(%eax),%ecx
52c36b:	ff 40 14             	incl   0x14(%eax)
52c36e:	8b 78 08             	mov    0x8(%eax),%edi
52c371:	8d 0c 0f             	lea    (%edi,%ecx,1),%ecx
52c374:	51                   	push   %ecx
52c375:	8a 88 b0 16 00 00    	mov    0x16b0(%eax),%cl
52c37b:	80 e1 ff             	and    $0xff,%cl
52c37e:	5f                   	pop    %edi
52c37f:	88 0f                	mov    %cl,(%edi)
52c381:	8b 48 14             	mov    0x14(%eax),%ecx
52c384:	ff 40 14             	incl   0x14(%eax)
52c387:	8b 78 08             	mov    0x8(%eax),%edi
52c38a:	8d 0c 0f             	lea    (%edi,%ecx,1),%ecx
52c38d:	51                   	push   %ecx
52c38e:	0f b7 88 b0 16 00 00 	movzwl 0x16b0(%eax),%ecx
52c395:	c1 f9 08             	sar    $0x8,%ecx
52c398:	5f                   	pop    %edi
52c399:	88 0f                	mov    %cl,(%edi)
52c39b:	b9 10 00 00 00       	mov    $0x10,%ecx
52c3a0:	2b 88 b4 16 00 00    	sub    0x16b4(%eax),%ecx
52c3a6:	0f b7 f6             	movzwl %si,%esi
52c3a9:	d3 fe                	sar    %cl,%esi
52c3ab:	66 89 b0 b0 16 00 00 	mov    %si,0x16b0(%eax)
52c3b2:	83 eb 10             	sub    $0x10,%ebx
52c3b5:	03 98 b4 16 00 00    	add    0x16b4(%eax),%ebx
52c3bb:	89 98 b4 16 00 00    	mov    %ebx,0x16b4(%eax)
52c3c1:	eb 16                	jmp    0x52c3d9
52c3c3:	8b 88 b4 16 00 00    	mov    0x16b4(%eax),%ecx
52c3c9:	66 d3 e6             	shl    %cl,%si
52c3cc:	66 09 b0 b0 16 00 00 	or     %si,0x16b0(%eax)
52c3d3:	01 98 b4 16 00 00    	add    %ebx,0x16b4(%eax)
52c3d9:	8b 4c 24 04          	mov    0x4(%esp),%ecx
52c3dd:	3b 88 98 16 00 00    	cmp    0x1698(%eax),%ecx
52c3e3:	0f 82 18 fc ff ff    	jb     0x52c001
52c3e9:	0f b7 9a 02 04 00 00 	movzwl 0x402(%edx),%ebx
52c3f0:	b9 10 00 00 00       	mov    $0x10,%ecx
52c3f5:	2b cb                	sub    %ebx,%ecx
52c3f7:	8b b8 b4 16 00 00    	mov    0x16b4(%eax),%edi
52c3fd:	3b cf                	cmp    %edi,%ecx
52c3ff:	7d 70                	jge    0x52c471
52c401:	0f b7 b2 00 04 00 00 	movzwl 0x400(%edx),%esi
52c408:	8b cf                	mov    %edi,%ecx
52c40a:	8b fe                	mov    %esi,%edi
52c40c:	66 d3 e7             	shl    %cl,%di
52c40f:	66 09 b8 b0 16 00 00 	or     %di,0x16b0(%eax)
52c416:	8b 48 14             	mov    0x14(%eax),%ecx
52c419:	ff 40 14             	incl   0x14(%eax)
52c41c:	8b 78 08             	mov    0x8(%eax),%edi
52c41f:	8d 0c 0f             	lea    (%edi,%ecx,1),%ecx
52c422:	51                   	push   %ecx
52c423:	8a 88 b0 16 00 00    	mov    0x16b0(%eax),%cl
52c429:	80 e1 ff             	and    $0xff,%cl
52c42c:	5f                   	pop    %edi
52c42d:	88 0f                	mov    %cl,(%edi)
52c42f:	8b 48 14             	mov    0x14(%eax),%ecx
52c432:	ff 40 14             	incl   0x14(%eax)
52c435:	8b 78 08             	mov    0x8(%eax),%edi
52c438:	8d 0c 0f             	lea    (%edi,%ecx,1),%ecx
52c43b:	51                   	push   %ecx
52c43c:	0f b7 88 b0 16 00 00 	movzwl 0x16b0(%eax),%ecx
52c443:	c1 f9 08             	sar    $0x8,%ecx
52c446:	5f                   	pop    %edi
52c447:	88 0f                	mov    %cl,(%edi)
52c449:	b9 10 00 00 00       	mov    $0x10,%ecx
52c44e:	2b 88 b4 16 00 00    	sub    0x16b4(%eax),%ecx
52c454:	0f b7 f6             	movzwl %si,%esi
52c457:	d3 fe                	sar    %cl,%esi
52c459:	66 89 b0 b0 16 00 00 	mov    %si,0x16b0(%eax)
52c460:	83 eb 10             	sub    $0x10,%ebx
52c463:	03 98 b4 16 00 00    	add    0x16b4(%eax),%ebx
52c469:	89 98 b4 16 00 00    	mov    %ebx,0x16b4(%eax)
52c46f:	eb 1d                	jmp    0x52c48e
52c471:	66 8b b2 00 04 00 00 	mov    0x400(%edx),%si
52c478:	8b 88 b4 16 00 00    	mov    0x16b4(%eax),%ecx
52c47e:	66 d3 e6             	shl    %cl,%si
52c481:	66 09 b0 b0 16 00 00 	or     %si,0x16b0(%eax)
52c488:	01 98 b4 16 00 00    	add    %ebx,0x16b4(%eax)
52c48e:	0f b7 92 02 04 00 00 	movzwl 0x402(%edx),%edx
52c495:	89 90 ac 16 00 00    	mov    %edx,0x16ac(%eax)
52c49b:	83 c4 14             	add    $0x14,%esp
52c49e:	5d                   	pop    %ebp
52c49f:	5f                   	pop    %edi
52c4a0:	5e                   	pop    %esi
52c4a1:	5b                   	pop    %ebx
52c4a2:	c3                   	ret
52c4a3:	90                   	nop
52c4a4:	53                   	push   %ebx
52c4a5:	56                   	push   %esi
52c4a6:	57                   	push   %edi
52c4a7:	33 d2                	xor    %edx,%edx
52c4a9:	33 f6                	xor    %esi,%esi
52c4ab:	33 c9                	xor    %ecx,%ecx
52c4ad:	8d 98 8c 00 00 00    	lea    0x8c(%eax),%ebx
52c4b3:	0f b7 3b             	movzwl (%ebx),%edi
52c4b6:	03 cf                	add    %edi,%ecx
52c4b8:	42                   	inc    %edx
52c4b9:	83 c3 04             	add    $0x4,%ebx
52c4bc:	83 fa 07             	cmp    $0x7,%edx
52c4bf:	7c f2                	jl     0x52c4b3
52c4c1:	8d 9c 90 8c 00 00 00 	lea    0x8c(%eax,%edx,4),%ebx
52c4c8:	81 fa 80 00 00 00    	cmp    $0x80,%edx
52c4ce:	7d 11                	jge    0x52c4e1
52c4d0:	0f b7 3b             	movzwl (%ebx),%edi
52c4d3:	03 f7                	add    %edi,%esi
52c4d5:	42                   	inc    %edx
52c4d6:	83 c3 04             	add    $0x4,%ebx
52c4d9:	81 fa 80 00 00 00    	cmp    $0x80,%edx
52c4df:	7c ef                	jl     0x52c4d0
52c4e1:	8d 9c 90 8c 00 00 00 	lea    0x8c(%eax,%edx,4),%ebx
52c4e8:	81 fa 00 01 00 00    	cmp    $0x100,%edx
52c4ee:	7d 11                	jge    0x52c501
52c4f0:	0f b7 3b             	movzwl (%ebx),%edi
52c4f3:	03 cf                	add    %edi,%ecx
52c4f5:	42                   	inc    %edx
52c4f6:	83 c3 04             	add    $0x4,%ebx
52c4f9:	81 fa 00 01 00 00    	cmp    $0x100,%edx
52c4ff:	7c ef                	jl     0x52c4f0
52c501:	c1 ee 02             	shr    $0x2,%esi
52c504:	3b ce                	cmp    %esi,%ecx
52c506:	76 04                	jbe    0x52c50c
52c508:	33 d2                	xor    %edx,%edx
52c50a:	eb 02                	jmp    0x52c50e
52c50c:	b2 01                	mov    $0x1,%dl
52c50e:	88 50 1c             	mov    %dl,0x1c(%eax)
52c511:	5f                   	pop    %edi
52c512:	5e                   	pop    %esi
52c513:	5b                   	pop    %ebx
52c514:	c3                   	ret
52c515:	90                   	nop
52c516:	90                   	nop
52c517:	90                   	nop
52c518:	53                   	push   %ebx
52c519:	33 c9                	xor    %ecx,%ecx
52c51b:	8b d8                	mov    %eax,%ebx
52c51d:	4a                   	dec    %edx
52c51e:	83 e3 01             	and    $0x1,%ebx
52c521:	0b cb                	or     %ebx,%ecx
52c523:	d1 e8                	shr    $1,%eax
52c525:	03 c9                	add    %ecx,%ecx
52c527:	85 d2                	test   %edx,%edx
52c529:	7f f0                	jg     0x52c51b
52c52b:	8b c1                	mov    %ecx,%eax
52c52d:	d1 e8                	shr    $1,%eax
52c52f:	5b                   	pop    %ebx
52c530:	c3                   	ret
52c531:	90                   	nop
52c532:	90                   	nop
52c533:	90                   	nop
52c534:	53                   	push   %ebx
52c535:	83 b8 b4 16 00 00 10 	cmpl   $0x10,0x16b4(%eax)
52c53c:	75 3e                	jne    0x52c57c
52c53e:	8b 50 14             	mov    0x14(%eax),%edx
52c541:	ff 40 14             	incl   0x14(%eax)
52c544:	8b 48 08             	mov    0x8(%eax),%ecx
52c547:	8a 98 b0 16 00 00    	mov    0x16b0(%eax),%bl
52c54d:	80 e3 ff             	and    $0xff,%bl
52c550:	88 1c 11             	mov    %bl,(%ecx,%edx,1)
52c553:	8b 50 14             	mov    0x14(%eax),%edx
52c556:	ff 40 14             	incl   0x14(%eax)
52c559:	0f b7 98 b0 16 00 00 	movzwl 0x16b0(%eax),%ebx
52c560:	8b 48 08             	mov    0x8(%eax),%ecx
52c563:	c1 fb 08             	sar    $0x8,%ebx
52c566:	88 1c 11             	mov    %bl,(%ecx,%edx,1)
52c569:	33 d2                	xor    %edx,%edx
52c56b:	66 c7 80 b0 16 00 00 	movw   $0x0,0x16b0(%eax)
52c572:	00 00
52c574:	89 90 b4 16 00 00    	mov    %edx,0x16b4(%eax)
52c57a:	5b                   	pop    %ebx
52c57b:	c3                   	ret
52c57c:	83 b8 b4 16 00 00 08 	cmpl   $0x8,0x16b4(%eax)
52c583:	7c 21                	jl     0x52c5a6
52c585:	8b 48 14             	mov    0x14(%eax),%ecx
52c588:	ff 40 14             	incl   0x14(%eax)
52c58b:	8b 50 08             	mov    0x8(%eax),%edx
52c58e:	8a 98 b0 16 00 00    	mov    0x16b0(%eax),%bl
52c594:	88 1c 0a             	mov    %bl,(%edx,%ecx,1)
52c597:	66 c1 a8 b0 16 00 00 	shrw   $0x8,0x16b0(%eax)
52c59e:	08
52c59f:	83 a8 b4 16 00 00 08 	subl   $0x8,0x16b4(%eax)
52c5a6:	5b                   	pop    %ebx
52c5a7:	c3                   	ret
52c5a8:	53                   	push   %ebx
52c5a9:	83 b8 b4 16 00 00 08 	cmpl   $0x8,0x16b4(%eax)
52c5b0:	7e 2d                	jle    0x52c5df
52c5b2:	8b 50 14             	mov    0x14(%eax),%edx
52c5b5:	ff 40 14             	incl   0x14(%eax)
52c5b8:	8b 48 08             	mov    0x8(%eax),%ecx
52c5bb:	8a 98 b0 16 00 00    	mov    0x16b0(%eax),%bl
52c5c1:	80 e3 ff             	and    $0xff,%bl
52c5c4:	88 1c 11             	mov    %bl,(%ecx,%edx,1)
52c5c7:	8b 50 14             	mov    0x14(%eax),%edx
52c5ca:	ff 40 14             	incl   0x14(%eax)
52c5cd:	8b 48 08             	mov    0x8(%eax),%ecx
52c5d0:	0f b7 98 b0 16 00 00 	movzwl 0x16b0(%eax),%ebx
52c5d7:	c1 fb 08             	sar    $0x8,%ebx
52c5da:	88 1c 11             	mov    %bl,(%ecx,%edx,1)
52c5dd:	eb 1b                	jmp    0x52c5fa
52c5df:	83 b8 b4 16 00 00 00 	cmpl   $0x0,0x16b4(%eax)
52c5e6:	7e 12                	jle    0x52c5fa
52c5e8:	8b 50 14             	mov    0x14(%eax),%edx
52c5eb:	ff 40 14             	incl   0x14(%eax)
52c5ee:	8b 48 08             	mov    0x8(%eax),%ecx
52c5f1:	8a 98 b0 16 00 00    	mov    0x16b0(%eax),%bl
52c5f7:	88 1c 11             	mov    %bl,(%ecx,%edx,1)
52c5fa:	66 c7 80 b0 16 00 00 	movw   $0x0,0x16b0(%eax)
52c601:	00 00
52c603:	33 d2                	xor    %edx,%edx
52c605:	89 90 b4 16 00 00    	mov    %edx,0x16b4(%eax)
52c60b:	5b                   	pop    %ebx
52c60c:	c3                   	ret
52c60d:	90                   	nop
52c60e:	90                   	nop
52c60f:	90                   	nop
52c610:	55                   	push   %ebp
52c611:	8b ec                	mov    %esp,%ebp
52c613:	53                   	push   %ebx
52c614:	56                   	push   %esi
52c615:	57                   	push   %edi
52c616:	8b f9                	mov    %ecx,%edi
52c618:	8b f2                	mov    %edx,%esi
52c61a:	8b d8                	mov    %eax,%ebx
52c61c:	8b c3                	mov    %ebx,%eax
52c61e:	e8 85 ff ff ff       	call   0x52c5a8
52c623:	c7 83 ac 16 00 00 08 	movl   $0x8,0x16ac(%ebx)
52c62a:	00 00 00
52c62d:	83 7d 08 00          	cmpl   $0x0,0x8(%ebp)
52c631:	74 69                	je     0x52c69c
52c633:	8b 53 14             	mov    0x14(%ebx),%edx
52c636:	8b c7                	mov    %edi,%eax
52c638:	ff 43 14             	incl   0x14(%ebx)
52c63b:	8b 4b 08             	mov    0x8(%ebx),%ecx
52c63e:	8d 14 11             	lea    (%ecx,%edx,1),%edx
52c641:	8b c8                	mov    %eax,%ecx
52c643:	52                   	push   %edx
52c644:	80 e1 ff             	and    $0xff,%cl
52c647:	5a                   	pop    %edx
52c648:	f6 d0                	not    %al
52c64a:	88 0a                	mov    %cl,(%edx)
52c64c:	24 ff                	and    $0xff,%al
52c64e:	8b 4b 14             	mov    0x14(%ebx),%ecx
52c651:	ff 43 14             	incl   0x14(%ebx)
52c654:	8b 53 08             	mov    0x8(%ebx),%edx
52c657:	8d 0c 0a             	lea    (%edx,%ecx,1),%ecx
52c65a:	0f b7 d7             	movzwl %di,%edx
52c65d:	51                   	push   %ecx
52c65e:	59                   	pop    %ecx
52c65f:	c1 fa 08             	sar    $0x8,%edx
52c662:	88 11                	mov    %dl,(%ecx)
52c664:	8b 53 14             	mov    0x14(%ebx),%edx
52c667:	ff 43 14             	incl   0x14(%ebx)
52c66a:	8b 4b 08             	mov    0x8(%ebx),%ecx
52c66d:	8d 14 11             	lea    (%ecx,%edx,1),%edx
52c670:	52                   	push   %edx
52c671:	59                   	pop    %ecx
52c672:	88 01                	mov    %al,(%ecx)
52c674:	8b cf                	mov    %edi,%ecx
52c676:	66 f7 d1             	not    %cx
52c679:	0f b7 c9             	movzwl %cx,%ecx
52c67c:	8b 43 14             	mov    0x14(%ebx),%eax
52c67f:	ff 43 14             	incl   0x14(%ebx)
52c682:	8b 53 08             	mov    0x8(%ebx),%edx
52c685:	c1 f9 08             	sar    $0x8,%ecx
52c688:	88 0c 02             	mov    %cl,(%edx,%eax,1)
52c68b:	eb 0f                	jmp    0x52c69c
52c68d:	8b 43 14             	mov    0x14(%ebx),%eax
52c690:	ff 43 14             	incl   0x14(%ebx)
52c693:	8b 53 08             	mov    0x8(%ebx),%edx
52c696:	8a 0e                	mov    (%esi),%cl
52c698:	88 0c 02             	mov    %cl,(%edx,%eax,1)
52c69b:	46                   	inc    %esi
52c69c:	8b c7                	mov    %edi,%eax
52c69e:	83 c7 ff             	add    $0xffffffff,%edi
52c6a1:	85 c0                	test   %eax,%eax
52c6a3:	75 e8                	jne    0x52c68d
52c6a5:	5f                   	pop    %edi
52c6a6:	5e                   	pop    %esi
52c6a7:	5b                   	pop    %ebx
52c6a8:	5d                   	pop    %ebp
52c6a9:	c2 04 00             	ret    $0x4
52c6ac:	53                   	push   %ebx
52c6ad:	56                   	push   %esi
52c6ae:	57                   	push   %edi
52c6af:	8b f8                	mov    %eax,%edi
52c6b1:	c1 ef 10             	shr    $0x10,%edi
52c6b4:	8b d8                	mov    %eax,%ebx