484278:	66 3b c1             	cmp    %cx,%ax
48427b:	75 03                	jne    0x484280
48427d:	83 ea 02             	sub    $0x2,%edx
484280:	3b 93 88 00 00 00    	cmp    0x88(%ebx),%edx
484286:	73 06                	jae    0x48428e
484288:	89 93 88 00 00 00    	mov    %edx,0x88(%ebx)
48428e:	0f b7 0a             	movzwl (%edx),%ecx
484291:	8b c1                	mov    %ecx,%eax
484293:	25 00 fc 00 00       	and    $0xfc00,%eax
484298:	3d 00 d8 00 00       	cmp    $0xd800,%eax
48429d:	75 1a                	jne    0x4842b9
48429f:	0f b7 42 02          	movzwl 0x2(%edx),%eax
4842a3:	81 e1 ff 03 00 00    	and    $0x3ff,%ecx
4842a9:	25 ff 03 00 00       	and    $0x3ff,%eax
4842ae:	c1 e1 0a             	shl    $0xa,%ecx
4842b1:	0b c8                	or     %eax,%ecx
4842b3:	81 c1 00 00 01 00    	add    $0x10000,%ecx
4842b9:	83 7b 58 00          	cmpl   $0x0,0x58(%ebx)
4842bd:	74 5c                	je     0x48431b
4842bf:	83 f9 5f             	cmp    $0x5f,%ecx
4842c2:	75 08                	jne    0x4842cc
4842c4:	8b 45 f8             	mov    -0x8(%ebp),%eax
4842c7:	8d 71 a2             	lea    -0x5e(%ecx),%esi
4842ca:	eb 6f                	jmp    0x48433b
4842cc:	8b c1                	mov    %ecx,%eax
4842ce:	99                   	cltd
4842cf:	83 e2 7f             	and    $0x7f,%edx
4842d2:	03 c2                	add    %edx,%eax
4842d4:	c1 f8 07             	sar    $0x7,%eax
4842d7:	0f b6 80 a0 c4 4a 00 	movzbl 0x4ac4a0(%eax),%eax
4842de:	c1 e0 07             	shl    $0x7,%eax
4842e1:	81 e1 7f 00 00 80    	and    $0x8000007f,%ecx
4842e7:	79 05                	jns    0x4842ee
4842e9:	49                   	dec    %ecx
4842ea:	83 c9 80             	or     $0xffffff80,%ecx
4842ed:	41                   	inc    %ecx
4842ee:	03 c1                	add    %ecx,%eax
4842f0:	0f b7 04 45 08 e6 49 	movzwl 0x49e608(,%eax,2),%eax
4842f7:	00
4842f8:	0f b6 04 c5 09 b1 4a 	movzbl 0x4ab109(,%eax,8),%eax
4842ff:	00
484300:	8b 04 85 80 61 4b 00 	mov    0x4b6180(,%eax,4),%eax
484307:	83 f8 01             	cmp    $0x1,%eax
48430a:	74 05                	je     0x484311
48430c:	83 f8 03             	cmp    $0x3,%eax
48430f:	75 25                	jne    0x484336
484311:	8b 45 f8             	mov    -0x8(%ebp),%eax
484314:	be 01 00 00 00       	mov    $0x1,%esi
484319:	eb 20                	jmp    0x48433b
48431b:	81 f9 00 01 00 00    	cmp    $0x100,%ecx
484321:	73 13                	jae    0x484336
484323:	8b 43 44             	mov    0x44(%ebx),%eax
484326:	f6 04 01 10          	testb  $0x10,(%ecx,%eax,1)
48432a:	74 0a                	je     0x484336
48432c:	8b 45 f8             	mov    -0x8(%ebp),%eax
48432f:	be 01 00 00 00       	mov    $0x1,%esi
484334:	eb 05                	jmp    0x48433b
484336:	8b 45 f8             	mov    -0x8(%ebp),%eax
484339:	33 f6                	xor    %esi,%esi
48433b:	3b 43 7c             	cmp    0x7c(%ebx),%eax
48433e:	73 63                	jae    0x4843a3
484340:	0f b7 08             	movzwl (%eax),%ecx
484343:	8b c1                	mov    %ecx,%eax
484345:	25 00 fc 00 00       	and    $0xfc00,%eax
48434a:	3d 00 d8 00 00       	cmp    $0xd800,%eax
48434f:	75 1d                	jne    0x48436e
484351:	8b 45 f8             	mov    -0x8(%ebp),%eax
484354:	81 e1 ff 03 00 00    	and    $0x3ff,%ecx
48435a:	0f b7 40 02          	movzwl 0x2(%eax),%eax
48435e:	25 ff 03 00 00       	and    $0x3ff,%eax
484363:	c1 e1 0a             	shl    $0xa,%ecx
484366:	0b c8                	or     %eax,%ecx
484368:	81 c1 00 00 01 00    	add    $0x10000,%ecx
48436e:	83 7b 58 00          	cmpl   $0x0,0x58(%ebx)
484372:	74 76                	je     0x4843ea
484374:	83 f9 5f             	cmp    $0x5f,%ecx
484377:	0f 84 ad 01 00 00    	je     0x48452a
48437d:	8b c1                	mov    %ecx,%eax
48437f:	99                   	cltd
484380:	83 e2 7f             	and    $0x7f,%edx
484383:	03 c2                	add    %edx,%eax
484385:	c1 f8 07             	sar    $0x7,%eax
484388:	0f b6 80 a0 c4 4a 00 	movzbl 0x4ac4a0(%eax),%eax
48438f:	c1 e0 07             	shl    $0x7,%eax
484392:	81 e1 7f 00 00 80    	and    $0x8000007f,%ecx
484398:	0f 88 38 01 00 00    	js     0x4844d6
48439e:	e9 38 01 00 00       	jmp    0x4844db
4843a3:	83 bb 8c 00 00 00 00 	cmpl   $0x0,0x8c(%ebx)
4843aa:	74 1c                	je     0x4843c8
4843ac:	3b 83 88 00 00 00    	cmp    0x88(%ebx),%eax
4843b2:	76 14                	jbe    0x4843c8
4843b4:	c7 43 68 01 00 00 00 	movl   $0x1,0x68(%ebx)
4843bb:	83 bb 8c 00 00 00 01 	cmpl   $0x1,0x8c(%ebx)
4843c2:	0f 8f 65 fd ff ff    	jg     0x48412d
4843c8:	33 c9                	xor    %ecx,%ecx
4843ca:	66 8b 07             	mov    (%edi),%ax
4843cd:	83 c7 02             	add    $0x2,%edi
4843d0:	89 7d cc             	mov    %edi,-0x34(%ebp)
4843d3:	66 83 f8 05          	cmp    $0x5,%ax
4843d7:	0f 85 57 01 00 00    	jne    0x484534
4843dd:	3b ce                	cmp    %esi,%ecx
4843df:	0f 85 7b 5f f8 ff    	jne    0x40a360
4843e5:	e9 8a 61 f8 ff       	jmp    0x40a574
4843ea:	81 f9 00 01 00 00    	cmp    $0x100,%ecx
4843f0:	73 d6                	jae    0x4843c8
4843f2:	8b 43 44             	mov    0x44(%ebx),%eax
4843f5:	f6 04 01 10          	testb  $0x10,(%ecx,%eax,1)
4843f9:	0f 85 2b 01 00 00    	jne    0x48452a
4843ff:	eb c7                	jmp    0x4843c8
484401:	3b 43 78             	cmp    0x78(%ebx),%eax
484404:	0f 84 96 00 00 00    	je     0x4844a0
48440a:	3b 83 88 00 00 00    	cmp    0x88(%ebx),%eax
484410:	77 0c                	ja     0x48441e
484412:	83 c0 fe             	add    $0xfffffffe,%eax
484415:	89 83 88 00 00 00    	mov    %eax,0x88(%ebx)
48441b:	8b 45 f8             	mov    -0x8(%ebp),%eax
48441e:	0f b7 48 fe          	movzwl -0x2(%eax),%ecx
484422:	39 53 58             	cmp    %edx,0x58(%ebx)
484425:	74 59                	je     0x484480
484427:	83 f9 5f             	cmp    $0x5f,%ecx
48442a:	75 05                	jne    0x484431
48442c:	8d 71 a2             	lea    -0x5e(%ecx),%esi
48442f:	eb 71                	jmp    0x4844a2
484431:	8b c1                	mov    %ecx,%eax
484433:	99                   	cltd
484434:	83 e2 7f             	and    $0x7f,%edx
484437:	03 c2                	add    %edx,%eax
484439:	c1 f8 07             	sar    $0x7,%eax
48443c:	0f b6 80 a0 c4 4a 00 	movzbl 0x4ac4a0(%eax),%eax
484443:	c1 e0 07             	shl    $0x7,%eax
484446:	81 e1 7f 00 00 80    	and    $0x8000007f,%ecx
48444c:	79 05                	jns    0x484453
48444e:	49                   	dec    %ecx
48444f:	83 c9 80             	or     $0xffffff80,%ecx
484452:	41                   	inc    %ecx
484453:	03 c1                	add    %ecx,%eax
484455:	0f b7 04 45 08 e6 49 	movzwl 0x49e608(,%eax,2),%eax
48445c:	00
48445d:	0f b6 04 c5 09 b1 4a 	movzbl 0x4ab109(,%eax,8),%eax
484464:	00
484465:	8b 04 85 80 61 4b 00 	mov    0x4b6180(,%eax,4),%eax
48446c:	83 f8 01             	cmp    $0x1,%eax
48446f:	74 05                	je     0x484476
484471:	83 f8 03             	cmp    $0x3,%eax
484474:	75 27                	jne    0x48449d
484476:	8b 45 f8             	mov    -0x8(%ebp),%eax
484479:	be 01 00 00 00       	mov    $0x1,%esi
48447e:	eb 22                	jmp    0x4844a2
484480:	ba ff 00 00 00       	mov    $0xff,%edx
484485:	66 3b ca             	cmp    %dx,%cx
484488:	77 16                	ja     0x4844a0
48448a:	8b 43 44             	mov    0x44(%ebx),%eax
48448d:	f6 04 01 10          	testb  $0x10,(%ecx,%eax,1)
484491:	74 0a                	je     0x48449d
484493:	8b 45 f8             	mov    -0x8(%ebp),%eax
484496:	be 01 00 00 00       	mov    $0x1,%esi
48449b:	eb 05                	jmp    0x4844a2
48449d:	8b 45 f8             	mov    -0x8(%ebp),%eax
4844a0:	33 f6                	xor    %esi,%esi
4844a2:	3b 43 7c             	cmp    0x7c(%ebx),%eax
4844a5:	0f 83 f8 fe ff ff    	jae    0x4843a3
4844ab:	83 7b 58 00          	cmpl   $0x0,0x58(%ebx)
4844af:	74 59                	je     0x48450a
4844b1:	0f b7 08             	movzwl (%eax),%ecx
4844b4:	83 f9 5f             	cmp    $0x5f,%ecx
4844b7:	74 71                	je     0x48452a
4844b9:	8b c1                	mov    %ecx,%eax
4844bb:	99                   	cltd
4844bc:	83 e2 7f             	and    $0x7f,%edx
4844bf:	03 c2                	add    %edx,%eax
4844c1:	c1 f8 07             	sar    $0x7,%eax
4844c4:	0f b6 80 a0 c4 4a 00 	movzbl 0x4ac4a0(%eax),%eax
4844cb:	c1 e0 07             	shl    $0x7,%eax
4844ce:	81 e1 7f 00 00 80    	and    $0x8000007f,%ecx
4844d4:	79 05                	jns    0x4844db
4844d6:	49                   	dec    %ecx
4844d7:	83 c9 80             	or     $0xffffff80,%ecx
4844da:	41                   	inc    %ecx
4844db:	03 c1                	add    %ecx,%eax
4844dd:	0f b7 04 45 08 e6 49 	movzwl 0x49e608(,%eax,2),%eax
4844e4:	00
4844e5:	0f b6 04 c5 09 b1 4a 	movzbl 0x4ab109(,%eax,8),%eax
4844ec:	00
4844ed:	8b 04 85 80 61 4b 00 	mov    0x4b6180(,%eax,4),%eax
4844f4:	83 f8 01             	cmp    $0x1,%eax
4844f7:	74 31                	je     0x48452a
4844f9:	83 f8 03             	cmp    $0x3,%eax
4844fc:	0f 85 c6 fe ff ff    	jne    0x4843c8
484502:	8d 48 fe             	lea    -0x2(%eax),%ecx
484505:	e9 c0 fe ff ff       	jmp    0x4843ca
48450a:	0f b7 00             	movzwl (%eax),%eax
48450d:	b9 ff 00 00 00       	mov    $0xff,%ecx
484512:	66 3b c1             	cmp    %cx,%ax
484515:	0f 87 ad fe ff ff    	ja     0x4843c8
48451b:	8b c8                	mov    %eax,%ecx
48451d:	8b 43 44             	mov    0x44(%ebx),%eax
484520:	f6 04 01 10          	testb  $0x10,(%ecx,%eax,1)
484524:	0f 84 9e fe ff ff    	je     0x4843c8
48452a:	b9 01 00 00 00       	mov    $0x1,%ecx
48452f:	e9 96 fe ff ff       	jmp    0x4843ca
484534:	3b ce                	cmp    %esi,%ecx
484536:	0f 84 24 5e f8 ff    	je     0x40a360
48453c:	e9 33 60 f8 ff       	jmp    0x40a574
484541:	8b 53 18             	mov    0x18(%ebx),%edx
484544:	8b 4b 7c             	mov    0x7c(%ebx),%ecx
484547:	85 d2                	test   %edx,%edx
484549:	74 25                	je     0x484570
48454b:	8b 45 f8             	mov    -0x8(%ebp),%eax
48454e:	8b 75 e4             	mov    -0x1c(%ebp),%esi
484551:	3b c1                	cmp    %ecx,%eax
484553:	73 53                	jae    0x4845a8
484555:	56                   	push   %esi
484556:	8d 43 1c             	lea    0x1c(%ebx),%eax
484559:	50                   	push   %eax
48455a:	51                   	push   %ecx
48455b:	8b 4d f8             	mov    -0x8(%ebp),%ecx
48455e:	e8 9b 4a f8 ff       	call   0x408ffe
484563:	83 c4 0c             	add    $0xc,%esp
484566:	85 c0                	test   %eax,%eax
484568:	0f 85 06 60 f8 ff    	jne    0x40a574
48456e:	eb 35                	jmp    0x4845a5
484570:	8b 53 1c             	mov    0x1c(%ebx),%edx
484573:	8d 04 12             	lea    (%edx,%edx,1),%eax
484576:	2b c8                	sub    %eax,%ecx
484578:	8b 45 f8             	mov    -0x8(%ebp),%eax
48457b:	3b c1                	cmp    %ecx,%eax
48457d:	77 23                	ja     0x4845a2
48457f:	66 8b 00             	mov    (%eax),%ax
484582:	66 3b 43 34          	cmp    0x34(%ebx),%ax
484586:	75 1a                	jne    0x4845a2
484588:	83 fa 01             	cmp    $0x1,%edx
48458b:	0f 84 e3 5f f8 ff    	je     0x40a574
484591:	8b 45 f8             	mov    -0x8(%ebp),%eax
484594:	66 8b 40 02          	mov    0x2(%eax),%ax
484598:	66 3b 43 36          	cmp    0x36(%ebx),%ax
48459c:	0f 84 d2 5f f8 ff    	je     0x40a574
4845a2:	8b 75 e4             	mov    -0x1c(%ebp),%esi
4845a5:	8b 45 f8             	mov    -0x8(%ebp),%eax
4845a8:	83 bb 8c 00 00 00 00 	cmpl   $0x0,0x8c(%ebx)
4845af:	74 37                	je     0x4845e8
4845b1:	83 c0 02             	add    $0x2,%eax
4845b4:	3b 43 7c             	cmp    0x7c(%ebx),%eax
4845b7:	8b 45 f8             	mov    -0x8(%ebp),%eax
4845ba:	72 2c                	jb     0x4845e8
4845bc:	83 7b 18 00          	cmpl   $0x0,0x18(%ebx)
4845c0:	75 26                	jne    0x4845e8
4845c2:	83 7b 1c 02          	cmpl   $0x2,0x1c(%ebx)
4845c6:	75 20                	jne    0x4845e8
4845c8:	66 8b 00             	mov    (%eax),%ax
4845cb:	66 3b 43 34          	cmp    0x34(%ebx),%ax
4845cf:	75 14                	jne    0x4845e5
4845d1:	c7 43 68 01 00 00 00 	movl   $0x1,0x68(%ebx)
4845d8:	83 bb 8c 00 00 00 01 	cmpl   $0x1,0x8c(%ebx)
4845df:	0f 8f 48 fb ff ff    	jg     0x48412d
4845e5:	8b 45 f8             	mov    -0x8(%ebp),%eax
4845e8:	8b 4b 7c             	mov    0x7c(%ebx),%ecx
4845eb:	3b c1                	cmp    %ecx,%eax
4845ed:	0f 83 b2 65 f8 ff    	jae    0x40aba5
4845f3:	83 c0 02             	add    $0x2,%eax
4845f6:	89 45 f8             	mov    %eax,-0x8(%ebp)
4845f9:	85 f6                	test   %esi,%esi
4845fb:	0f 84 75 60 f8 ff    	je     0x40a676
484601:	3b c1                	cmp    %ecx,%eax
484603:	0f 83 6d 60 f8 ff    	jae    0x40a676
484609:	66 8b 00             	mov    (%eax),%ax
48460c:	b9 00 fc 00 00       	mov    $0xfc00,%ecx
484611:	66 23 c1             	and    %cx,%ax
484614:	b9 00 dc 00 00       	mov    $0xdc00,%ecx
484619:	66 3b c1             	cmp    %cx,%ax
48461c:	0f 85 54 60 f8 ff    	jne    0x40a676
484622:	83 45 f8 02          	addl   $0x2,-0x8(%ebp)
484626:	e9 4b 60 f8 ff       	jmp    0x40a676
48462b:	8b 45 f8             	mov    -0x8(%ebp),%eax
48462e:	3b 43 7c             	cmp    0x7c(%ebx),%eax
484631:	0f 83 5d 65 f8 ff    	jae    0x40ab94
484637:	83 c0 02             	add    $0x2,%eax
48463a:	89 45 f8             	mov    %eax,-0x8(%ebp)
48463d:	e9 34 60 f8 ff       	jmp    0x40a676
484642:	8b 45 f8             	mov    -0x8(%ebp),%eax
484645:	3b 43 7c             	cmp    0x7c(%ebx),%eax
484648:	0f 83 46 65 f8 ff    	jae    0x40ab94
48464e:	0f b7 08             	movzwl (%eax),%ecx
484651:	83 c0 02             	add    $0x2,%eax
484654:	89 45 f8             	mov    %eax,-0x8(%ebp)
484657:	39 55 e4             	cmp    %edx,-0x1c(%ebp)
48465a:	74 2e                	je     0x48468a
48465c:	8b c1                	mov    %ecx,%eax
48465e:	25 00 fc 00 00       	and    $0xfc00,%eax
484663:	3d 00 d8 00 00       	cmp    $0xd800,%eax
484668:	75 20                	jne    0x48468a
48466a:	8b 45 f8             	mov    -0x8(%ebp),%eax
48466d:	81 e1 ff 03 00 00    	and    $0x3ff,%ecx
484673:	0f b7 00             	movzwl (%eax),%eax
484676:	c1 e1 0a             	shl    $0xa,%ecx
484679:	25 ff 03 00 00       	and    $0x3ff,%eax
48467e:	0b c8                	or     %eax,%ecx
484680:	81 c1 00 00 01 00    	add    $0x10000,%ecx
484686:	83 45 f8 02          	addl   $0x2,-0x8(%ebp)
48468a:	81 f9 00 01 00 00    	cmp    $0x100,%ecx
484690:	0f 83 e0 5f f8 ff    	jae    0x40a676
484696:	8b 43 44             	mov    0x44(%ebx),%eax
484699:	f6 04 01 04          	testb  $0x4,(%ecx,%eax,1)
48469d:	0f 85 d1 5e f8 ff    	jne    0x40a574
4846a3:	e9 ce 5f f8 ff       	jmp    0x40a676
4846a8:	8b 45 f8             	mov    -0x8(%ebp),%eax
4846ab:	3b 43 7c             	cmp    0x7c(%ebx),%eax
4846ae:	0f 83 e0 64 f8 ff    	jae    0x40ab94
4846b4:	0f b7 08             	movzwl (%eax),%ecx
4846b7:	83 c0 02             	add    $0x2,%eax
4846ba:	89 45 f8             	mov    %eax,-0x8(%ebp)
4846bd:	39 55 e4             	cmp    %edx,-0x1c(%ebp)
4846c0:	74 2e                	je     0x4846f0
4846c2:	8b c1                	mov    %ecx,%eax
4846c4:	25 00 fc 00 00       	and    $0xfc00,%eax
4846c9:	3d 00 d8 00 00       	cmp    $0xd800,%eax
4846ce:	75 20                	jne    0x4846f0
4846d0:	8b 45 f8             	mov    -0x8(%ebp),%eax
4846d3:	81 e1 ff 03 00 00    	and    $0x3ff,%ecx
4846d9:	0f b7 00             	movzwl (%eax),%eax
4846dc:	c1 e1 0a             	shl    $0xa,%ecx
4846df:	25 ff 03 00 00       	and    $0x3ff,%eax
4846e4:	0b c8                	or     %eax,%ecx
4846e6:	81 c1 00 00 01 00    	add    $0x10000,%ecx
4846ec:	83 45 f8 02          	addl   $0x2,-0x8(%ebp)
4846f0:	81 f9 ff 00 00 00    	cmp    $0xff,%ecx
4846f6:	0f 87 78 5e f8 ff    	ja     0x40a574
4846fc:	8b 43 44             	mov    0x44(%ebx),%eax
4846ff:	f6 04 01 04          	testb  $0x4,(%ecx,%eax,1)
484703:	0f 84 6b 5e f8 ff    	je     0x40a574
484709:	e9 68 5f f8 ff       	jmp    0x40a676
48470e:	8b 45 f8             	mov    -0x8(%ebp),%eax
484711:	3b 43 7c             	cmp    0x7c(%ebx),%eax
484714:	0f 83 7a 64 f8 ff    	jae    0x40ab94
48471a:	0f b7 08             	movzwl (%eax),%ecx
48471d:	83 c0 02             	add    $0x2,%eax
484720:	89 45 f8             	mov    %eax,-0x8(%ebp)
484723:	39 55 e4             	cmp    %edx,-0x1c(%ebp)
484726:	74 2e                	je     0x484756
484728:	8b c1                	mov    %ecx,%eax
48472a:	25 00 fc 00 00       	and    $0xfc00,%eax
48472f:	3d 00 d8 00 00       	cmp    $0xd800,%eax
484734:	75 20                	jne    0x484756
484736:	8b 45 f8             	mov    -0x8(%ebp),%eax
484739:	81 e1 ff 03 00 00    	and    $0x3ff,%ecx
48473f:	0f b7 00             	movzwl (%eax),%eax
484742:	c1 e1 0a             	shl    $0xa,%ecx
484745:	25 ff 03 00 00       	and    $0x3ff,%eax
48474a:	0b c8                	or     %eax,%ecx
48474c:	81 c1 00 00 01 00    	add    $0x10000,%ecx
484752:	83 45 f8 02          	addl   $0x2,-0x8(%ebp)