4851cd:	7e a4                	jle    0x485173
4851cf:	e9 c3 54 f8 ff       	jmp    0x40a697
4851d4:	8b 45 f8             	mov    -0x8(%ebp),%eax
4851d7:	81 e1 ff 03 00 00    	and    $0x3ff,%ecx
4851dd:	0f b7 40 02          	movzwl 0x2(%eax),%eax
4851e1:	25 ff 03 00 00       	and    $0x3ff,%eax
4851e6:	c1 e1 0a             	shl    $0xa,%ecx
4851e9:	0b c8                	or     %eax,%ecx
4851eb:	81 c1 00 00 01 00    	add    $0x10000,%ecx
4851f1:	89 4d e0             	mov    %ecx,-0x20(%ebp)
4851f4:	c7 45 d4 02 00 00 00 	movl   $0x2,-0x2c(%ebp)
4851fb:	e9 ec 54 f8 ff       	jmp    0x40a6ec
485200:	83 fe 6e             	cmp    $0x6e,%esi
485203:	0f 84 0f 55 f8 ff    	je     0x40a718
485209:	e9 cb 5a f8 ff       	jmp    0x40acd9
48520e:	83 bb 8c 00 00 00 00 	cmpl   $0x0,0x8c(%ebx)
485215:	0f 84 fd 54 f8 ff    	je     0x40a718
48521b:	3b 83 88 00 00 00    	cmp    0x88(%ebx),%eax
485221:	0f 86 f1 54 f8 ff    	jbe    0x40a718
485227:	c7 43 68 01 00 00 00 	movl   $0x1,0x68(%ebx)
48522e:	83 bb 8c 00 00 00 01 	cmpl   $0x1,0x8c(%ebx)
485235:	0f 8f f2 ee ff ff    	jg     0x48412d
48523b:	e9 d8 54 f8 ff       	jmp    0x40a718
485240:	3b 55 e8             	cmp    -0x18(%ebp),%edx
485243:	7d 6c                	jge    0x4852b1
485245:	3b 43 7c             	cmp    0x7c(%ebx),%eax
485248:	73 42                	jae    0x48528c
48524a:	0f b7 08             	movzwl (%eax),%ecx
48524d:	89 4d ec             	mov    %ecx,-0x14(%ebp)
485250:	81 f9 ff 00 00 00    	cmp    $0xff,%ecx
485256:	76 07                	jbe    0x48525f
485258:	83 fe 6e             	cmp    $0x6e,%esi
48525b:	75 21                	jne    0x48527e
48525d:	eb 52                	jmp    0x4852b1
48525f:	c1 6d ec 03          	shrl   $0x3,-0x14(%ebp)
485263:	8b 5d ec             	mov    -0x14(%ebp),%ebx
485266:	83 e1 07             	and    $0x7,%ecx
485269:	b8 01 00 00 00       	mov    $0x1,%eax
48526e:	d3 e0                	shl    %cl,%eax
485270:	8b 4d c8             	mov    -0x38(%ebp),%ecx
485273:	84 04 0b             	test   %al,(%ebx,%ecx,1)
485276:	8b 5d 10             	mov    0x10(%ebp),%ebx
485279:	8b 45 f8             	mov    -0x8(%ebp),%eax
48527c:	74 33                	je     0x4852b1
48527e:	83 c0 02             	add    $0x2,%eax
485281:	42                   	inc    %edx
485282:	89 45 f8             	mov    %eax,-0x8(%ebp)
485285:	3b 55 e8             	cmp    -0x18(%ebp),%edx
485288:	7c bb                	jl     0x485245
48528a:	eb 25                	jmp    0x4852b1
48528c:	83 bb 8c 00 00 00 00 	cmpl   $0x0,0x8c(%ebx)
485293:	74 1c                	je     0x4852b1
485295:	3b 83 88 00 00 00    	cmp    0x88(%ebx),%eax
48529b:	76 14                	jbe    0x4852b1
48529d:	c7 43 68 01 00 00 00 	movl   $0x1,0x68(%ebx)
4852a4:	83 bb 8c 00 00 00 01 	cmpl   $0x1,0x8c(%ebx)
4852ab:	0f 8f 7c ee ff ff    	jg     0x48412d
4852b1:	83 7d d0 00          	cmpl   $0x0,-0x30(%ebp)
4852b5:	0f 85 a5 50 f8 ff    	jne    0x40a360
4852bb:	3b 45 dc             	cmp    -0x24(%ebp),%eax
4852be:	0f 82 b0 52 f8 ff    	jb     0x40a574
4852c4:	8b 75 f8             	mov    -0x8(%ebp),%esi
4852c7:	8b 45 18             	mov    0x18(%ebp),%eax
4852ca:	40                   	inc    %eax
4852cb:	50                   	push   %eax
4852cc:	ff 75 14             	push   0x14(%ebp)
4852cf:	8b d7                	mov    %edi,%edx
4852d1:	53                   	push   %ebx
4852d2:	ff 75 0c             	push   0xc(%ebp)
4852d5:	8b ce                	mov    %esi,%ecx
4852d7:	ff 75 08             	push   0x8(%ebp)
4852da:	e8 21 50 f8 ff       	call   0x40a300
4852df:	83 c4 14             	add    $0x14,%esp
4852e2:	85 c0                	test   %eax,%eax
4852e4:	0f 85 dd 51 f8 ff    	jne    0x40a4c7
4852ea:	83 ee 02             	sub    $0x2,%esi
4852ed:	3b 75 dc             	cmp    -0x24(%ebp),%esi
4852f0:	73 d5                	jae    0x4852c7
4852f2:	e9 d0 51 f8 ff       	jmp    0x40a4c7
4852f7:	8d 47 04             	lea    0x4(%edi),%eax
4852fa:	89 45 ec             	mov    %eax,-0x14(%ebp)
4852fd:	0f b7 47 02          	movzwl 0x2(%edi),%eax
485301:	0f b7 0c 47          	movzwl (%edi,%eax,2),%ecx
485305:	8d 3c 47             	lea    (%edi,%eax,2),%edi
485308:	8b f1                	mov    %ecx,%esi
48530a:	89 7d cc             	mov    %edi,-0x34(%ebp)
48530d:	8d 46 9e             	lea    -0x62(%esi),%eax
485310:	83 f8 0b             	cmp    $0xb,%eax
485313:	0f 87 89 00 00 00    	ja     0x4853a2
485319:	0f b6 80 12 b9 48 00 	movzbl 0x48b912(%eax),%eax
485320:	ff 24 85 0a b9 48 00 	jmp    *0x48b90a(,%eax,4)
485327:	8d 4e 9e             	lea    -0x62(%esi),%ecx
48532a:	83 c7 02             	add    $0x2,%edi
48532d:	89 7d cc             	mov    %edi,-0x34(%ebp)
485330:	83 f9 08             	cmp    $0x8,%ecx
485333:	73 0e                	jae    0x485343
485335:	8b 45 d0             	mov    -0x30(%ebp),%eax
485338:	0f b6 d1             	movzbl %cl,%edx
48533b:	83 e2 01             	and    $0x1,%edx
48533e:	89 55 c8             	mov    %edx,-0x38(%ebp)
485341:	eb 08                	jmp    0x48534b
485343:	b8 01 00 00 00       	mov    $0x1,%eax
485348:	89 45 d0             	mov    %eax,-0x30(%ebp)
48534b:	0f be b6 be e4 49 00 	movsbl 0x49e4be(%esi),%esi
485352:	0f be 89 7c e4 49 00 	movsbl 0x49e47c(%ecx),%ecx
485359:	89 4d d8             	mov    %ecx,-0x28(%ebp)
48535c:	89 75 e0             	mov    %esi,-0x20(%ebp)
48535f:	85 f6                	test   %esi,%esi
485361:	75 4f                	jne    0x4853b2
485363:	be ff ff ff 7f       	mov    $0x7fffffff,%esi
485368:	eb 45                	jmp    0x4853af
48536a:	0f b7 77 04          	movzwl 0x4(%edi),%esi
48536e:	33 d2                	xor    %edx,%edx
485370:	83 f9 69             	cmp    $0x69,%ecx
485373:	0f 94 c2             	sete   %dl
485376:	33 c0                	xor    %eax,%eax
485378:	83 f9 6d             	cmp    $0x6d,%ecx
48537b:	0f b7 4f 02          	movzwl 0x2(%edi),%ecx
48537f:	0f 94 c0             	sete   %al
485382:	89 55 c8             	mov    %edx,-0x38(%ebp)
485385:	89 4d d8             	mov    %ecx,-0x28(%ebp)
485388:	89 75 e0             	mov    %esi,-0x20(%ebp)
48538b:	89 45 d0             	mov    %eax,-0x30(%ebp)
48538e:	85 f6                	test   %esi,%esi
485390:	75 08                	jne    0x48539a
485392:	be ff ff ff 7f       	mov    $0x7fffffff,%esi
485397:	89 75 e0             	mov    %esi,-0x20(%ebp)
48539a:	83 c7 06             	add    $0x6,%edi
48539d:	89 7d cc             	mov    %edi,-0x34(%ebp)
4853a0:	eb 10                	jmp    0x4853b2
4853a2:	8b 45 d0             	mov    -0x30(%ebp),%eax
4853a5:	be 01 00 00 00       	mov    $0x1,%esi
4853aa:	8b ce                	mov    %esi,%ecx
4853ac:	89 4d d8             	mov    %ecx,-0x28(%ebp)
4853af:	89 75 e0             	mov    %esi,-0x20(%ebp)
4853b2:	c7 45 e8 01 00 00 00 	movl   $0x1,-0x18(%ebp)
4853b9:	83 f9 01             	cmp    $0x1,%ecx
4853bc:	7c 7b                	jl     0x485439
4853be:	8b 45 f8             	mov    -0x8(%ebp),%eax
4853c1:	3b 43 7c             	cmp    0x7c(%ebx),%eax
4853c4:	0f 83 db 57 f8 ff    	jae    0x40aba5
4853ca:	0f b7 10             	movzwl (%eax),%edx
4853cd:	8b 4d e4             	mov    -0x1c(%ebp),%ecx
4853d0:	83 c0 02             	add    $0x2,%eax
4853d3:	89 55 d4             	mov    %edx,-0x2c(%ebp)
4853d6:	89 45 f8             	mov    %eax,-0x8(%ebp)
4853d9:	85 c9                	test   %ecx,%ecx
4853db:	74 2f                	je     0x48540c
4853dd:	8b c2                	mov    %edx,%eax
4853df:	25 00 fc 00 00       	and    $0xfc00,%eax
4853e4:	3d 00 d8 00 00       	cmp    $0xd800,%eax
4853e9:	75 21                	jne    0x48540c
4853eb:	8b 45 f8             	mov    -0x8(%ebp),%eax
4853ee:	81 e2 ff 03 00 00    	and    $0x3ff,%edx
4853f4:	0f b7 00             	movzwl (%eax),%eax
4853f7:	25 ff 03 00 00       	and    $0x3ff,%eax
4853fc:	c1 e2 0a             	shl    $0xa,%edx
4853ff:	0b c2                	or     %edx,%eax
485401:	05 00 00 01 00       	add    $0x10000,%eax
485406:	83 45 f8 02          	addl   $0x2,-0x8(%ebp)
48540a:	eb 03                	jmp    0x48540f
48540c:	8b 45 d4             	mov    -0x2c(%ebp),%eax
48540f:	8b 55 ec             	mov    -0x14(%ebp),%edx
485412:	51                   	push   %ecx
485413:	8b c8                	mov    %eax,%ecx
485415:	e8 fb bf fe ff       	call   0x471415
48541a:	83 c4 04             	add    $0x4,%esp
48541d:	85 c0                	test   %eax,%eax
48541f:	0f 84 4f 51 f8 ff    	je     0x40a574
485425:	8b 45 e8             	mov    -0x18(%ebp),%eax
485428:	8b 4d d8             	mov    -0x28(%ebp),%ecx
48542b:	40                   	inc    %eax
48542c:	89 45 e8             	mov    %eax,-0x18(%ebp)
48542f:	3b c1                	cmp    %ecx,%eax
485431:	7e 8b                	jle    0x4853be
485433:	8b 55 c8             	mov    -0x38(%ebp),%edx
485436:	8b 45 d0             	mov    -0x30(%ebp),%eax
485439:	3b ce                	cmp    %esi,%ecx
48543b:	0f 84 1f 4f f8 ff    	je     0x40a360
485441:	8b 75 f8             	mov    -0x8(%ebp),%esi
485444:	85 d2                	test   %edx,%edx
485446:	0f 85 b3 49 00 00    	jne    0x489dff
48544c:	89 75 f4             	mov    %esi,-0xc(%ebp)
48544f:	3b 4d e0             	cmp    -0x20(%ebp),%ecx
485452:	0f 8d a8 00 00 00    	jge    0x485500
485458:	8b 45 f8             	mov    -0x8(%ebp),%eax
48545b:	c7 45 e8 01 00 00 00 	movl   $0x1,-0x18(%ebp)
485462:	3b 43 7c             	cmp    0x7c(%ebx),%eax
485465:	73 6e                	jae    0x4854d5
485467:	0f b7 10             	movzwl (%eax),%edx
48546a:	8b 4d e4             	mov    -0x1c(%ebp),%ecx
48546d:	89 55 d4             	mov    %edx,-0x2c(%ebp)
485470:	8b f0                	mov    %eax,%esi
485472:	85 c9                	test   %ecx,%ecx
485474:	74 30                	je     0x4854a6
485476:	8b c2                	mov    %edx,%eax
485478:	25 00 fc 00 00       	and    $0xfc00,%eax
48547d:	3d 00 d8 00 00       	cmp    $0xd800,%eax
485482:	75 22                	jne    0x4854a6
485484:	0f b7 46 02          	movzwl 0x2(%esi),%eax
485488:	81 e2 ff 03 00 00    	and    $0x3ff,%edx
48548e:	25 ff 03 00 00       	and    $0x3ff,%eax
485493:	c1 e2 0a             	shl    $0xa,%edx
485496:	0b c2                	or     %edx,%eax
485498:	05 00 00 01 00       	add    $0x10000,%eax
48549d:	c7 45 e8 02 00 00 00 	movl   $0x2,-0x18(%ebp)
4854a4:	eb 03                	jmp    0x4854a9
4854a6:	8b 45 d4             	mov    -0x2c(%ebp),%eax
4854a9:	8b 55 ec             	mov    -0x14(%ebp),%edx
4854ac:	51                   	push   %ecx
4854ad:	8b c8                	mov    %eax,%ecx
4854af:	e8 61 bf fe ff       	call   0x471415
4854b4:	83 c4 04             	add    $0x4,%esp
4854b7:	85 c0                	test   %eax,%eax
4854b9:	74 42                	je     0x4854fd
4854bb:	8b 45 f8             	mov    -0x8(%ebp),%eax
4854be:	8b 4d e8             	mov    -0x18(%ebp),%ecx
4854c1:	8d 04 48             	lea    (%eax,%ecx,2),%eax
4854c4:	8b 4d d8             	mov    -0x28(%ebp),%ecx
4854c7:	41                   	inc    %ecx
4854c8:	89 45 f8             	mov    %eax,-0x8(%ebp)
4854cb:	89 4d d8             	mov    %ecx,-0x28(%ebp)
4854ce:	3b 4d e0             	cmp    -0x20(%ebp),%ecx
4854d1:	7c 85                	jl     0x485458
4854d3:	eb 25                	jmp    0x4854fa
4854d5:	83 bb 8c 00 00 00 00 	cmpl   $0x0,0x8c(%ebx)
4854dc:	74 1c                	je     0x4854fa
4854de:	3b 83 88 00 00 00    	cmp    0x88(%ebx),%eax
4854e4:	76 14                	jbe    0x4854fa
4854e6:	c7 43 68 01 00 00 00 	movl   $0x1,0x68(%ebx)
4854ed:	83 bb 8c 00 00 00 01 	cmpl   $0x1,0x8c(%ebx)
4854f4:	0f 8f 33 ec ff ff    	jg     0x48412d
4854fa:	8b 75 f8             	mov    -0x8(%ebp),%esi
4854fd:	8b 45 d0             	mov    -0x30(%ebp),%eax
485500:	85 c0                	test   %eax,%eax
485502:	0f 85 58 4e f8 ff    	jne    0x40a360
485508:	8b 45 18             	mov    0x18(%ebp),%eax
48550b:	40                   	inc    %eax
48550c:	50                   	push   %eax
48550d:	ff 75 14             	push   0x14(%ebp)
485510:	8b d7                	mov    %edi,%edx
485512:	53                   	push   %ebx
485513:	ff 75 0c             	push   0xc(%ebp)
485516:	8b ce                	mov    %esi,%ecx
485518:	ff 75 08             	push   0x8(%ebp)
48551b:	e8 e0 4d f8 ff       	call   0x40a300
485520:	83 c4 14             	add    $0x14,%esp
485523:	85 c0                	test   %eax,%eax
485525:	0f 85 9c 4f f8 ff    	jne    0x40a4c7
48552b:	8b c6                	mov    %esi,%eax
48552d:	83 ee 02             	sub    $0x2,%esi
485530:	3b 45 f4             	cmp    -0xc(%ebp),%eax
485533:	0f 84 3b 50 f8 ff    	je     0x40a574
485539:	83 7d e4 00          	cmpl   $0x0,-0x1c(%ebp)
48553d:	74 18                	je     0x485557
48553f:	66 8b 06             	mov    (%esi),%ax
485542:	b9 00 fc 00 00       	mov    $0xfc00,%ecx
485547:	66 23 c1             	and    %cx,%ax
48554a:	b9 00 dc 00 00       	mov    $0xdc00,%ecx
48554f:	66 3b c1             	cmp    %cx,%ax
485552:	75 03                	jne    0x485557
485554:	83 ee 02             	sub    $0x2,%esi
485557:	8b 45 18             	mov    0x18(%ebp),%eax
48555a:	40                   	inc    %eax
48555b:	50                   	push   %eax
48555c:	ff 75 14             	push   0x14(%ebp)
48555f:	8b d7                	mov    %edi,%edx
485561:	53                   	push   %ebx
485562:	ff 75 0c             	push   0xc(%ebp)
485565:	8b ce                	mov    %esi,%ecx
485567:	ff 75 08             	push   0x8(%ebp)
48556a:	e8 91 4d f8 ff       	call   0x40a300
48556f:	83 c4 14             	add    $0x14,%esp
485572:	85 c0                	test   %eax,%eax
485574:	74 b5                	je     0x48552b
485576:	e9 4c 4f f8 ff       	jmp    0x40a4c7
48557b:	8b 43 7c             	mov    0x7c(%ebx),%eax
48557e:	8b 4d f8             	mov    -0x8(%ebp),%ecx
485581:	2b c1                	sub    %ecx,%eax
485583:	83 e0 fe             	and    $0xfffffffe,%eax
485586:	83 f8 02             	cmp    $0x2,%eax
485589:	0f 8c 5c 49 00 00    	jl     0x489eeb
48558f:	66 8b 01             	mov    (%ecx),%ax
485592:	83 c1 02             	add    $0x2,%ecx
485595:	89 4d f8             	mov    %ecx,-0x8(%ebp)
485598:	66 39 47 02          	cmp    %ax,0x2(%edi)
48559c:	0f 85 d2 4f f8 ff    	jne    0x40a574
4855a2:	83 c7 04             	add    $0x4,%edi
4855a5:	e9 cf 50 f8 ff       	jmp    0x40a679
4855aa:	0f b7 47 02          	movzwl 0x2(%edi),%eax
4855ae:	81 e6 ff 03 00 00    	and    $0x3ff,%esi
4855b4:	25 ff 03 00 00       	and    $0x3ff,%eax
4855b9:	c1 e6 0a             	shl    $0xa,%esi
4855bc:	0b f0                	or     %eax,%esi
4855be:	81 c6 00 00 01 00    	add    $0x10000,%esi
4855c4:	ba 02 00 00 00       	mov    $0x2,%edx
4855c9:	e9 c8 51 f8 ff       	jmp    0x40a796
4855ce:	83 c0 02             	add    $0x2,%eax
4855d1:	89 45 f8             	mov    %eax,-0x8(%ebp)
4855d4:	8b c1                	mov    %ecx,%eax
4855d6:	25 00 fc 00 00       	and    $0xfc00,%eax
4855db:	89 4d d4             	mov    %ecx,-0x2c(%ebp)
4855de:	3d 00 d8 00 00       	cmp    $0xd800,%eax
4855e3:	75 23                	jne    0x485608
4855e5:	8b 45 f8             	mov    -0x8(%ebp),%eax
4855e8:	81 e1 ff 03 00 00    	and    $0x3ff,%ecx
4855ee:	0f b7 00             	movzwl (%eax),%eax
4855f1:	c1 e1 0a             	shl    $0xa,%ecx
4855f4:	25 ff 03 00 00       	and    $0x3ff,%eax
4855f9:	0b c8                	or     %eax,%ecx
4855fb:	81 c1 00 00 01 00    	add    $0x10000,%ecx
485601:	83 45 f8 02          	addl   $0x2,-0x8(%ebp)
485605:	89 4d d4             	mov    %ecx,-0x2c(%ebp)
485608:	8d 3c 57             	lea    (%edi,%edx,2),%edi
48560b:	89 7d cc             	mov    %edi,-0x34(%ebp)
48560e:	3b f1                	cmp    %ecx,%esi
485610:	0f 84 4a 4d f8 ff    	je     0x40a360
485616:	8b c6                	mov    %esi,%eax
485618:	99                   	cltd
485619:	83 e2 7f             	and    $0x7f,%edx
48561c:	03 c2                	add    %edx,%eax
48561e:	c1 f8 07             	sar    $0x7,%eax
485621:	0f b6 88 a0 c4 4a 00 	movzbl 0x4ac4a0(%eax),%ecx
485628:	8b c6                	mov    %esi,%eax
48562a:	c1 e1 07             	shl    $0x7,%ecx
48562d:	25 7f 00 00 80       	and    $0x8000007f,%eax
485632:	79 05                	jns    0x485639
485634:	48                   	dec    %eax
485635:	83 c8 80             	or     $0xffffff80,%eax
485638:	40                   	inc    %eax
485639:	03 c8                	add    %eax,%ecx
48563b:	0f b7 04 4d 08 e6 49 	movzwl 0x49e608(,%ecx,2),%eax
485642:	00
485643:	8b 04 c5 0c b1 4a 00 	mov    0x4ab10c(,%eax,8),%eax
48564a:	03 c6                	add    %esi,%eax
48564c:	39 45 d4             	cmp    %eax,-0x2c(%ebp)
48564f:	0f 84 0b 4d f8 ff    	je     0x40a360
485655:	e9 1a 4f f8 ff       	jmp    0x40a574
48565a:	0f b7 4f 02          	movzwl 0x2(%edi),%ecx
48565e:	ba ff 00 00 00       	mov    $0xff,%edx
485663:	66 3b ca             	cmp    %dx,%cx
485666:	77 0c                	ja     0x485674
485668:	8b 43 3c             	mov    0x3c(%ebx),%eax
48566b:	0f b6 14 08          	movzbl (%eax,%ecx,1),%edx
48566f:	8b 45 f8             	mov    -0x8(%ebp),%eax
485672:	eb 02                	jmp    0x485676
485674:	8b d1                	mov    %ecx,%edx
485676:	0f b7 08             	movzwl (%eax),%ecx
485679:	be ff 00 00 00       	mov    $0xff,%esi
48567e:	66 3b ce             	cmp    %si,%cx