4881fb:	8b 45 d4             	mov    -0x2c(%ebp),%eax
4881fe:	8d 0c 41             	lea    (%ecx,%eax,2),%ecx
488201:	8b 45 f0             	mov    -0x10(%ebp),%eax
488204:	40                   	inc    %eax
488205:	3b 45 dc             	cmp    -0x24(%ebp),%eax
488208:	89 45 f0             	mov    %eax,-0x10(%ebp)
48820b:	8b 45 e4             	mov    -0x1c(%ebp),%eax
48820e:	89 4d f8             	mov    %ecx,-0x8(%ebp)
488211:	0f 8c 3e ff ff ff    	jl     0x488155
488217:	e9 09 04 00 00       	jmp    0x488625
48821c:	8b 55 f0             	mov    -0x10(%ebp),%edx
48821f:	3b 55 dc             	cmp    -0x24(%ebp),%edx
488222:	0f 8d fd 03 00 00    	jge    0x488625
488228:	8b 75 d0             	mov    -0x30(%ebp),%esi
48822b:	c7 45 f4 01 00 00 00 	movl   $0x1,-0xc(%ebp)
488232:	3b 4b 7c             	cmp    0x7c(%ebx),%ecx
488235:	0f 83 b7 fb ff ff    	jae    0x487df2
48823b:	0f b7 19             	movzwl (%ecx),%ebx
48823e:	89 5d e8             	mov    %ebx,-0x18(%ebp)
488241:	8b 5d 10             	mov    0x10(%ebp),%ebx
488244:	85 c0                	test   %eax,%eax
488246:	74 38                	je     0x488280
488248:	8b 45 e8             	mov    -0x18(%ebp),%eax
48824b:	25 00 fc 00 00       	and    $0xfc00,%eax
488250:	3d 00 d8 00 00       	cmp    $0xd800,%eax
488255:	75 26                	jne    0x48827d
488257:	0f b7 41 02          	movzwl 0x2(%ecx),%eax
48825b:	81 65 e8 ff 03 00 00 	andl   $0x3ff,-0x18(%ebp)
488262:	c1 65 e8 0a          	shll   $0xa,-0x18(%ebp)
488266:	25 ff 03 00 00       	and    $0x3ff,%eax
48826b:	0b 45 e8             	or     -0x18(%ebp),%eax
48826e:	c7 45 f4 02 00 00 00 	movl   $0x2,-0xc(%ebp)
488275:	05 00 00 01 00       	add    $0x10000,%eax
48827a:	89 45 e8             	mov    %eax,-0x18(%ebp)
48827d:	8b 45 e4             	mov    -0x1c(%ebp),%eax
488280:	81 7d e8 0e 18 00 00 	cmpl   $0x180e,-0x18(%ebp)
488287:	77 4b                	ja     0x4882d4
488289:	0f 84 dc 00 00 00    	je     0x48836b
48828f:	81 7d e8 85 00 00 00 	cmpl   $0x85,-0x18(%ebp)
488296:	77 21                	ja     0x4882b9
488298:	0f 84 cd 00 00 00    	je     0x48836b
48829e:	83 7d e8 09          	cmpl   $0x9,-0x18(%ebp)
4882a2:	72 6c                	jb     0x488310
4882a4:	83 7d e8 0d          	cmpl   $0xd,-0x18(%ebp)
4882a8:	0f 86 bd 00 00 00    	jbe    0x48836b
4882ae:	83 7d e8 20          	cmpl   $0x20,-0x18(%ebp)
4882b2:	75 5c                	jne    0x488310
4882b4:	e9 b2 00 00 00       	jmp    0x48836b
4882b9:	81 7d e8 a0 00 00 00 	cmpl   $0xa0,-0x18(%ebp)
4882c0:	0f 84 a5 00 00 00    	je     0x48836b
4882c6:	81 7d e8 80 16 00 00 	cmpl   $0x1680,-0x18(%ebp)
4882cd:	75 41                	jne    0x488310
4882cf:	e9 97 00 00 00       	jmp    0x48836b
4882d4:	81 7d e8 2f 20 00 00 	cmpl   $0x202f,-0x18(%ebp)
4882db:	77 21                	ja     0x4882fe
4882dd:	0f 84 88 00 00 00    	je     0x48836b
4882e3:	8b 45 e8             	mov    -0x18(%ebp),%eax
4882e6:	05 00 e0 ff ff       	add    $0xffffe000,%eax
4882eb:	83 f8 29             	cmp    $0x29,%eax
4882ee:	77 20                	ja     0x488310
4882f0:	0f b6 80 32 ba 48 00 	movzbl 0x48ba32(%eax),%eax
4882f7:	ff 24 85 2a ba 48 00 	jmp    *0x48ba2a(,%eax,4)
4882fe:	81 7d e8 5f 20 00 00 	cmpl   $0x205f,-0x18(%ebp)
488305:	74 64                	je     0x48836b
488307:	81 7d e8 00 30 00 00 	cmpl   $0x3000,-0x18(%ebp)
48830e:	74 5b                	je     0x48836b
488310:	8b 4d e8             	mov    -0x18(%ebp),%ecx
488313:	8b c1                	mov    %ecx,%eax
488315:	99                   	cltd
488316:	83 e2 7f             	and    $0x7f,%edx
488319:	03 c2                	add    %edx,%eax
48831b:	c1 f8 07             	sar    $0x7,%eax
48831e:	0f b6 80 a0 c4 4a 00 	movzbl 0x4ac4a0(%eax),%eax
488325:	c1 e0 07             	shl    $0x7,%eax
488328:	81 e1 7f 00 00 80    	and    $0x8000007f,%ecx
48832e:	79 05                	jns    0x488335
488330:	49                   	dec    %ecx
488331:	83 c9 80             	or     $0xffffff80,%ecx
488334:	41                   	inc    %ecx
488335:	03 c1                	add    %ecx,%eax
488337:	33 c9                	xor    %ecx,%ecx
488339:	0f b7 04 45 08 e6 49 	movzwl 0x49e608(,%eax,2),%eax
488340:	00
488341:	0f b6 04 c5 09 b1 4a 	movzbl 0x4ab109(,%eax,8),%eax
488348:	00
488349:	83 3c 85 80 61 4b 00 	cmpl   $0x6,0x4b6180(,%eax,4)
488350:	06
488351:	0f 94 c1             	sete   %cl
488354:	3b 4d c4             	cmp    -0x3c(%ebp),%ecx
488357:	8b 4d f8             	mov    -0x8(%ebp),%ecx
48835a:	0f 84 c5 02 00 00    	je     0x488625
488360:	8b 45 e4             	mov    -0x1c(%ebp),%eax
488363:	8b 55 f0             	mov    -0x10(%ebp),%edx
488366:	eb 0d                	jmp    0x488375
488368:	8b 45 e4             	mov    -0x1c(%ebp),%eax
48836b:	83 7d c4 00          	cmpl   $0x0,-0x3c(%ebp)
48836f:	0f 85 b0 02 00 00    	jne    0x488625
488375:	8b 75 f4             	mov    -0xc(%ebp),%esi
488378:	42                   	inc    %edx
488379:	8d 0c 71             	lea    (%ecx,%esi,2),%ecx
48837c:	8b 75 d0             	mov    -0x30(%ebp),%esi
48837f:	89 4d f8             	mov    %ecx,-0x8(%ebp)
488382:	89 55 f0             	mov    %edx,-0x10(%ebp)
488385:	3b 55 dc             	cmp    -0x24(%ebp),%edx
488388:	0f 8c 9a fe ff ff    	jl     0x488228
48838e:	e9 92 02 00 00       	jmp    0x488625
488393:	8b 55 dc             	mov    -0x24(%ebp),%edx
488396:	39 55 f0             	cmp    %edx,-0x10(%ebp)
488399:	0f 8d 86 02 00 00    	jge    0x488625
48839f:	c7 45 d4 01 00 00 00 	movl   $0x1,-0x2c(%ebp)
4883a6:	3b 4b 7c             	cmp    0x7c(%ebx),%ecx
4883a9:	0f 83 43 fa ff ff    	jae    0x487df2
4883af:	0f b7 11             	movzwl (%ecx),%edx
4883b2:	89 55 f4             	mov    %edx,-0xc(%ebp)
4883b5:	85 c0                	test   %eax,%eax
4883b7:	74 32                	je     0x4883eb
4883b9:	8b c2                	mov    %edx,%eax
4883bb:	25 00 fc 00 00       	and    $0xfc00,%eax
4883c0:	3d 00 d8 00 00       	cmp    $0xd800,%eax
4883c5:	75 24                	jne    0x4883eb
4883c7:	0f b7 41 02          	movzwl 0x2(%ecx),%eax
4883cb:	81 e2 ff 03 00 00    	and    $0x3ff,%edx
4883d1:	25 ff 03 00 00       	and    $0x3ff,%eax
4883d6:	c1 e2 0a             	shl    $0xa,%edx
4883d9:	0b d0                	or     %eax,%edx
4883db:	81 c2 00 00 01 00    	add    $0x10000,%edx
4883e1:	89 55 f4             	mov    %edx,-0xc(%ebp)
4883e4:	c7 45 d4 02 00 00 00 	movl   $0x2,-0x2c(%ebp)
4883eb:	8b c2                	mov    %edx,%eax
4883ed:	99                   	cltd
4883ee:	83 e2 7f             	and    $0x7f,%edx
4883f1:	03 c2                	add    %edx,%eax
4883f3:	8b 55 f4             	mov    -0xc(%ebp),%edx
4883f6:	c1 f8 07             	sar    $0x7,%eax
4883f9:	0f b6 88 a0 c4 4a 00 	movzbl 0x4ac4a0(%eax),%ecx
488400:	8b c2                	mov    %edx,%eax
488402:	c1 e1 07             	shl    $0x7,%ecx
488405:	25 7f 00 00 80       	and    $0x8000007f,%eax
48840a:	79 05                	jns    0x488411
48840c:	48                   	dec    %eax
48840d:	83 c8 80             	or     $0xffffff80,%eax
488410:	40                   	inc    %eax
488411:	03 c8                	add    %eax,%ecx
488413:	0f b7 04 4d 08 e6 49 	movzwl 0x49e608(,%ecx,2),%eax
48841a:	00
48841b:	0f b6 04 c5 09 b1 4a 	movzbl 0x4ab109(,%eax,8),%eax
488422:	00
488423:	8b 04 85 80 61 4b 00 	mov    0x4b6180(,%eax,4),%eax
48842a:	83 f8 01             	cmp    $0x1,%eax
48842d:	74 0e                	je     0x48843d
48842f:	83 f8 03             	cmp    $0x3,%eax
488432:	74 09                	je     0x48843d
488434:	83 fa 5f             	cmp    $0x5f,%edx
488437:	74 04                	je     0x48843d
488439:	33 c0                	xor    %eax,%eax
48843b:	eb 05                	jmp    0x488442
48843d:	b8 01 00 00 00       	mov    $0x1,%eax
488442:	8b 4d f8             	mov    -0x8(%ebp),%ecx
488445:	3b 45 c4             	cmp    -0x3c(%ebp),%eax
488448:	0f 84 d7 01 00 00    	je     0x488625
48844e:	8b 45 d4             	mov    -0x2c(%ebp),%eax
488451:	8d 0c 41             	lea    (%ecx,%eax,2),%ecx
488454:	8b 45 f0             	mov    -0x10(%ebp),%eax
488457:	40                   	inc    %eax
488458:	3b 45 dc             	cmp    -0x24(%ebp),%eax
48845b:	89 45 f0             	mov    %eax,-0x10(%ebp)
48845e:	8b 45 e4             	mov    -0x1c(%ebp),%eax
488461:	89 4d f8             	mov    %ecx,-0x8(%ebp)
488464:	0f 8c 35 ff ff ff    	jl     0x48839f
48846a:	e9 b6 01 00 00       	jmp    0x488625
48846f:	8b 55 f0             	mov    -0x10(%ebp),%edx
488472:	3b 55 dc             	cmp    -0x24(%ebp),%edx
488475:	0f 8d aa 01 00 00    	jge    0x488625
48847b:	8b 4d f8             	mov    -0x8(%ebp),%ecx
48847e:	c7 45 d4 01 00 00 00 	movl   $0x1,-0x2c(%ebp)
488485:	3b 4b 7c             	cmp    0x7c(%ebx),%ecx
488488:	0f 83 64 f9 ff ff    	jae    0x487df2
48848e:	0f b7 19             	movzwl (%ecx),%ebx
488491:	89 5d d8             	mov    %ebx,-0x28(%ebp)
488494:	85 c0                	test   %eax,%eax
488496:	74 37                	je     0x4884cf
488498:	8b c3                	mov    %ebx,%eax
48849a:	25 00 fc 00 00       	and    $0xfc00,%eax
48849f:	3d 00 d8 00 00       	cmp    $0xd800,%eax
4884a4:	75 26                	jne    0x4884cc
4884a6:	0f b7 41 02          	movzwl 0x2(%ecx),%eax
4884aa:	81 65 d8 ff 03 00 00 	andl   $0x3ff,-0x28(%ebp)
4884b1:	c1 65 d8 0a          	shll   $0xa,-0x28(%ebp)
4884b5:	25 ff 03 00 00       	and    $0x3ff,%eax
4884ba:	0b 45 d8             	or     -0x28(%ebp),%eax
4884bd:	c7 45 d4 02 00 00 00 	movl   $0x2,-0x2c(%ebp)
4884c4:	05 00 00 01 00       	add    $0x10000,%eax
4884c9:	89 45 d8             	mov    %eax,-0x28(%ebp)
4884cc:	8b 45 e4             	mov    -0x1c(%ebp),%eax
4884cf:	8b 5d bc             	mov    -0x44(%ebp),%ebx
4884d2:	8d 1c 9d a0 e6 4a 00 	lea    0x4ae6a0(,%ebx,4),%ebx
4884d9:	89 5d ec             	mov    %ebx,-0x14(%ebp)
4884dc:	8b 1b                	mov    (%ebx),%ebx
4884de:	39 5d d8             	cmp    %ebx,-0x28(%ebp)
4884e1:	89 5d f4             	mov    %ebx,-0xc(%ebp)
4884e4:	8b 5d 10             	mov    0x10(%ebp),%ebx
4884e7:	72 1f                	jb     0x488508
4884e9:	8b 4d f4             	mov    -0xc(%ebp),%ecx
4884ec:	83 45 ec 04          	addl   $0x4,-0x14(%ebp)
4884f0:	39 4d d8             	cmp    %ecx,-0x28(%ebp)
4884f3:	8b 4d f8             	mov    -0x8(%ebp),%ecx
4884f6:	74 38                	je     0x488530
4884f8:	8b 45 ec             	mov    -0x14(%ebp),%eax
4884fb:	8b 00                	mov    (%eax),%eax
4884fd:	39 45 d8             	cmp    %eax,-0x28(%ebp)
488500:	89 45 f4             	mov    %eax,-0xc(%ebp)
488503:	8b 45 e4             	mov    -0x1c(%ebp),%eax
488506:	73 e1                	jae    0x4884e9
488508:	83 7d c4 00          	cmpl   $0x0,-0x3c(%ebp)
48850c:	8b 75 d0             	mov    -0x30(%ebp),%esi
48850f:	0f 84 10 01 00 00    	je     0x488625
488515:	8b 5d d4             	mov    -0x2c(%ebp),%ebx
488518:	42                   	inc    %edx
488519:	8d 0c 59             	lea    (%ecx,%ebx,2),%ecx
48851c:	8b 5d 10             	mov    0x10(%ebp),%ebx
48851f:	89 4d f8             	mov    %ecx,-0x8(%ebp)
488522:	3b 55 dc             	cmp    -0x24(%ebp),%edx
488525:	0f 8c 50 ff ff ff    	jl     0x48847b
48852b:	e9 f5 00 00 00       	jmp    0x488625
488530:	83 7d c4 00          	cmpl   $0x0,-0x3c(%ebp)
488534:	8b 75 d0             	mov    -0x30(%ebp),%esi
488537:	74 dc                	je     0x488515
488539:	e9 e7 00 00 00       	jmp    0x488625
48853e:	8b 55 f0             	mov    -0x10(%ebp),%edx
488541:	3b 55 dc             	cmp    -0x24(%ebp),%edx
488544:	0f 8d db 00 00 00    	jge    0x488625
48854a:	8b 4d f8             	mov    -0x8(%ebp),%ecx
48854d:	c7 45 d4 01 00 00 00 	movl   $0x1,-0x2c(%ebp)
488554:	3b 4b 7c             	cmp    0x7c(%ebx),%ecx
488557:	0f 83 a3 00 00 00    	jae    0x488600
48855d:	0f b7 19             	movzwl (%ecx),%ebx
488560:	89 5d d8             	mov    %ebx,-0x28(%ebp)
488563:	8b 5d 10             	mov    0x10(%ebp),%ebx
488566:	85 c0                	test   %eax,%eax
488568:	74 38                	je     0x4885a2
48856a:	8b 45 d8             	mov    -0x28(%ebp),%eax
48856d:	25 00 fc 00 00       	and    $0xfc00,%eax
488572:	3d 00 d8 00 00       	cmp    $0xd800,%eax
488577:	75 26                	jne    0x48859f
488579:	0f b7 41 02          	movzwl 0x2(%ecx),%eax
48857d:	81 65 d8 ff 03 00 00 	andl   $0x3ff,-0x28(%ebp)
488584:	c1 65 d8 0a          	shll   $0xa,-0x28(%ebp)
488588:	25 ff 03 00 00       	and    $0x3ff,%eax
48858d:	0b 45 d8             	or     -0x28(%ebp),%eax
488590:	c7 45 d4 02 00 00 00 	movl   $0x2,-0x2c(%ebp)
488597:	05 00 00 01 00       	add    $0x10000,%eax
48859c:	89 45 d8             	mov    %eax,-0x28(%ebp)
48859f:	8b 45 e4             	mov    -0x1c(%ebp),%eax
4885a2:	83 7d d8 24          	cmpl   $0x24,-0x28(%ebp)
4885a6:	74 2e                	je     0x4885d6
4885a8:	83 7d d8 40          	cmpl   $0x40,-0x28(%ebp)
4885ac:	74 28                	je     0x4885d6
4885ae:	83 7d d8 60          	cmpl   $0x60,-0x28(%ebp)
4885b2:	74 22                	je     0x4885d6
4885b4:	81 7d d8 a0 00 00 00 	cmpl   $0xa0,-0x28(%ebp)
4885bb:	72 09                	jb     0x4885c6
4885bd:	81 7d d8 ff d7 00 00 	cmpl   $0xd7ff,-0x28(%ebp)
4885c4:	76 10                	jbe    0x4885d6
4885c6:	81 7d d8 00 e0 00 00 	cmpl   $0xe000,-0x28(%ebp)
4885cd:	c7 45 f4 00 00 00 00 	movl   $0x0,-0xc(%ebp)
4885d4:	72 07                	jb     0x4885dd
4885d6:	c7 45 f4 01 00 00 00 	movl   $0x1,-0xc(%ebp)
4885dd:	8b 75 c4             	mov    -0x3c(%ebp),%esi
4885e0:	39 75 f4             	cmp    %esi,-0xc(%ebp)
4885e3:	8b 75 d0             	mov    -0x30(%ebp),%esi
4885e6:	74 3d                	je     0x488625
4885e8:	8b 5d d4             	mov    -0x2c(%ebp),%ebx
4885eb:	42                   	inc    %edx
4885ec:	8d 0c 59             	lea    (%ecx,%ebx,2),%ecx
4885ef:	8b 5d 10             	mov    0x10(%ebp),%ebx
4885f2:	89 4d f8             	mov    %ecx,-0x8(%ebp)
4885f5:	3b 55 dc             	cmp    -0x24(%ebp),%edx
4885f8:	0f 8c 4c ff ff ff    	jl     0x48854a
4885fe:	eb 25                	jmp    0x488625
488600:	83 bb 8c 00 00 00 00 	cmpl   $0x0,0x8c(%ebx)
488607:	74 1c                	je     0x488625
488609:	3b 8b 88 00 00 00    	cmp    0x88(%ebx),%ecx
48860f:	76 14                	jbe    0x488625
488611:	c7 43 68 01 00 00 00 	movl   $0x1,0x68(%ebx)
488618:	83 bb 8c 00 00 00 01 	cmpl   $0x1,0x8c(%ebx)
48861f:	0f 8f 08 bb ff ff    	jg     0x48412d
488625:	85 f6                	test   %esi,%esi
488627:	0f 85 33 1d f8 ff    	jne    0x40a360
48862d:	8b 75 c8             	mov    -0x38(%ebp),%esi
488630:	3b ce                	cmp    %esi,%ecx
488632:	0f 84 99 1d f8 ff    	je     0x40a3d1
488638:	8b 45 18             	mov    0x18(%ebp),%eax
48863b:	40                   	inc    %eax
48863c:	50                   	push   %eax
48863d:	ff 75 14             	push   0x14(%ebp)
488640:	8b d7                	mov    %edi,%edx
488642:	53                   	push   %ebx
488643:	ff 75 0c             	push   0xc(%ebp)
488646:	ff 75 08             	push   0x8(%ebp)
488649:	e8 b2 1c f8 ff       	call   0x40a300
48864e:	83 c4 14             	add    $0x14,%esp
488651:	85 c0                	test   %eax,%eax
488653:	0f 85 6e 1e f8 ff    	jne    0x40a4c7
488659:	8b 4d f8             	mov    -0x8(%ebp),%ecx
48865c:	83 e9 02             	sub    $0x2,%ecx
48865f:	89 4d f8             	mov    %ecx,-0x8(%ebp)
488662:	39 45 e4             	cmp    %eax,-0x1c(%ebp)
488665:	74 1b                	je     0x488682
488667:	66 8b 01             	mov    (%ecx),%ax
48866a:	ba 00 fc 00 00       	mov    $0xfc00,%edx
48866f:	66 23 c2             	and    %dx,%ax
488672:	ba 00 dc 00 00       	mov    $0xdc00,%edx
488677:	66 3b c2             	cmp    %dx,%ax
48867a:	75 06                	jne    0x488682
48867c:	83 e9 02             	sub    $0x2,%ecx
48867f:	89 4d f8             	mov    %ecx,-0x8(%ebp)
488682:	3b ce                	cmp    %esi,%ecx
488684:	75 b2                	jne    0x488638
488686:	e9 46 1d f8 ff       	jmp    0x40a3d1
48868b:	8b 55 d8             	mov    -0x28(%ebp),%edx
48868e:	83 fa 16             	cmp    $0x16,%edx
488691:	0f 85 07 02 00 00    	jne    0x48889e
488697:	8b 55 dc             	mov    -0x24(%ebp),%edx
48869a:	39 55 f0             	cmp    %edx,-0x10(%ebp)
48869d:	7c 08                	jl     0x4886a7
48869f:	e9 ac 01 00 00       	jmp    0x488850
4886a4:	8b 45 e4             	mov    -0x1c(%ebp),%eax
4886a7:	8b 53 7c             	mov    0x7c(%ebx),%edx
4886aa:	89 55 d4             	mov    %edx,-0x2c(%ebp)
4886ad:	3b ca                	cmp    %edx,%ecx
4886af:	0f 83 76 01 00 00    	jae    0x48882b
4886b5:	0f b7 11             	movzwl (%ecx),%edx
4886b8:	83 c1 02             	add    $0x2,%ecx
4886bb:	89 55 f4             	mov    %edx,-0xc(%ebp)
4886be:	89 4d f8             	mov    %ecx,-0x8(%ebp)
4886c1:	85 c0                	test   %eax,%eax
4886c3:	74 30                	je     0x4886f5
4886c5:	8b c2                	mov    %edx,%eax
4886c7:	25 00 fc 00 00       	and    $0xfc00,%eax
4886cc:	3d 00 d8 00 00       	cmp    $0xd800,%eax
4886d1:	75 22                	jne    0x4886f5
4886d3:	0f b7 01             	movzwl (%ecx),%eax
4886d6:	81 e2 ff 03 00 00    	and    $0x3ff,%edx
4886dc:	c1 e2 0a             	shl    $0xa,%edx
4886df:	25 ff 03 00 00       	and    $0x3ff,%eax
4886e4:	0b d0                	or     %eax,%edx
4886e6:	81 c2 00 00 01 00    	add    $0x10000,%edx
4886ec:	83 c1 02             	add    $0x2,%ecx
4886ef:	89 55 f4             	mov    %edx,-0xc(%ebp)
4886f2:	89 4d f8             	mov    %ecx,-0x8(%ebp)