140315276:	48 8b 74 24 38       	mov    0x38(%rsp),%rsi
14031527b:	48 83 c4 20          	add    $0x20,%rsp
14031527f:	5f                   	pop    %rdi
140315280:	c3                   	ret
140315281:	cc                   	int3
140315282:	cc                   	int3
140315283:	cc                   	int3
140315284:	cc                   	int3
140315285:	cc                   	int3
140315286:	cc                   	int3
140315287:	cc                   	int3
140315288:	cc                   	int3
140315289:	cc                   	int3
14031528a:	cc                   	int3
14031528b:	cc                   	int3
14031528c:	cc                   	int3
14031528d:	cc                   	int3
14031528e:	cc                   	int3
14031528f:	cc                   	int3
140315290:	45 33 c9             	xor    %r9d,%r9d
140315293:	49 8b c0             	mov    %r8,%rax
140315296:	4d 89 48 10          	mov    %r9,0x10(%r8)
14031529a:	49 83 78 18 08       	cmpq   $0x8,0x18(%r8)
14031529f:	72 03                	jb     0x1403152a4
1403152a1:	49 8b 00             	mov    (%r8),%rax
1403152a4:	66 44 89 08          	mov    %r9w,(%rax)
1403152a8:	48 85 d2             	test   %rdx,%rdx
1403152ab:	74 10                	je     0x1403152bd
1403152ad:	80 39 80             	cmpb   $0x80,(%rcx)
1403152b0:	49 8b c8             	mov    %r8,%rcx
1403152b3:	72 03                	jb     0x1403152b8
1403152b5:	48 d1 ea             	shr    $1,%rdx
1403152b8:	e9 f3 e5 eb ff       	jmp    0x1401d38b0
1403152bd:	c3                   	ret
1403152be:	cc                   	int3
1403152bf:	cc                   	int3
1403152c0:	49 c7 40 10 00 00 00 	movq   $0x0,0x10(%r8)
1403152c7:	00
1403152c8:	49 8b c0             	mov    %r8,%rax
1403152cb:	49 83 78 18 10       	cmpq   $0x10,0x18(%r8)
1403152d0:	72 03                	jb     0x1403152d5
1403152d2:	49 8b 00             	mov    (%r8),%rax
1403152d5:	c6 00 00             	movb   $0x0,(%rax)
1403152d8:	48 85 d2             	test   %rdx,%rdx
1403152db:	74 16                	je     0x1403152f3
1403152dd:	b8 80 00 00 00       	mov    $0x80,%eax
1403152e2:	66 39 01             	cmp    %ax,(%rcx)
1403152e5:	49 8b c8             	mov    %r8,%rcx
1403152e8:	72 04                	jb     0x1403152ee
1403152ea:	48 8d 14 52          	lea    (%rdx,%rdx,2),%rdx
1403152ee:	e9 9d de da ff       	jmp    0x1400c3190
1403152f3:	c3                   	ret
1403152f4:	cc                   	int3
1403152f5:	cc                   	int3
1403152f6:	cc                   	int3
1403152f7:	cc                   	int3
1403152f8:	cc                   	int3
1403152f9:	cc                   	int3
1403152fa:	cc                   	int3
1403152fb:	cc                   	int3
1403152fc:	cc                   	int3
1403152fd:	cc                   	int3
1403152fe:	cc                   	int3
1403152ff:	cc                   	int3
140315300:	48 83 ec 38          	sub    $0x38,%rsp
140315304:	48 89 5c 24 40       	mov    %rbx,0x40(%rsp)
140315309:	4c 8b d1             	mov    %rcx,%r10
14031530c:	49 63 08             	movslq (%r8),%rcx
14031530f:	49 8b d8             	mov    %r8,%rbx
140315312:	48 89 74 24 50       	mov    %rsi,0x50(%rsp)
140315317:	49 8b f1             	mov    %r9,%rsi
14031531a:	48 89 7c 24 30       	mov    %rdi,0x30(%rsp)
14031531f:	48 8b f9             	mov    %rcx,%rdi
140315322:	46 0f b6 0c 11       	movzbl (%rcx,%r10,1),%r9d
140315327:	44 8d 41 01          	lea    0x1(%rcx),%r8d
14031532b:	44 89 03             	mov    %r8d,(%rbx)
14031532e:	45 84 c9             	test   %r9b,%r9b
140315331:	0f 89 c3 00 00 00    	jns    0x1403153fa
140315337:	41 81 f9 e0 00 00 00 	cmp    $0xe0,%r9d
14031533e:	72 71                	jb     0x1403153b1
140315340:	41 81 f9 f0 00 00 00 	cmp    $0xf0,%r9d
140315347:	73 68                	jae    0x1403153b1
140315349:	41 8d 40 01          	lea    0x1(%r8),%eax
14031534d:	3b c2                	cmp    %edx,%eax
14031534f:	7c 04                	jl     0x140315355
140315351:	85 d2                	test   %edx,%edx
140315353:	79 5c                	jns    0x1403153b1
140315355:	46 0f b6 5c 11 01    	movzbl 0x1(%rcx,%r10,1),%r11d
14031535b:	41 8b c3             	mov    %r11d,%eax
14031535e:	48 89 6c 24 48       	mov    %rbp,0x48(%rsp)
140315363:	c1 e8 05             	shr    $0x5,%eax
140315366:	48 8d 2d 8b e6 0a 00 	lea    0xae68b(%rip),%rbp        # 0x1403c39f8
14031536d:	0f b6 c8             	movzbl %al,%ecx
140315370:	41 8b c1             	mov    %r9d,%eax
140315373:	83 e0 0f             	and    $0xf,%eax
140315376:	0f be 04 28          	movsbl (%rax,%rbp,1),%eax
14031537a:	0f a3 c8             	bt     %ecx,%eax
14031537d:	48 8b 6c 24 48       	mov    0x48(%rsp),%rbp
140315382:	73 2d                	jae    0x1403153b1
140315384:	42 0f b6 44 17 02    	movzbl 0x2(%rdi,%r10,1),%eax
14031538a:	04 80                	add    $0x80,%al
14031538c:	3c 3f                	cmp    $0x3f,%al
14031538e:	77 21                	ja     0x1403153b1
140315390:	41 83 e1 0f          	and    $0xf,%r9d
140315394:	0f b6 c0             	movzbl %al,%eax
140315397:	41 c1 e1 06          	shl    $0x6,%r9d
14031539b:	41 83 e3 3f          	and    $0x3f,%r11d
14031539f:	45 0b cb             	or     %r11d,%r9d
1403153a2:	41 c1 e1 06          	shl    $0x6,%r9d
1403153a6:	44 0b c8             	or     %eax,%r9d
1403153a9:	41 8d 40 02          	lea    0x2(%r8),%eax
1403153ad:	89 03                	mov    %eax,(%rbx)
1403153af:	eb 49                	jmp    0x1403153fa
1403153b1:	41 8d 81 3e ff ff ff 	lea    -0xc2(%r9),%eax
1403153b8:	83 f8 1d             	cmp    $0x1d,%eax
1403153bb:	77 27                	ja     0x1403153e4
1403153bd:	44 3b c2             	cmp    %edx,%r8d
1403153c0:	74 22                	je     0x1403153e4
1403153c2:	42 0f b6 44 17 01    	movzbl 0x1(%rdi,%r10,1),%eax
1403153c8:	04 80                	add    $0x80,%al
1403153ca:	3c 3f                	cmp    $0x3f,%al
1403153cc:	77 16                	ja     0x1403153e4
1403153ce:	41 83 e1 1f          	and    $0x1f,%r9d
1403153d2:	0f b6 c0             	movzbl %al,%eax
1403153d5:	41 c1 e1 06          	shl    $0x6,%r9d
1403153d9:	44 0b c8             	or     %eax,%r9d
1403153dc:	41 8d 40 01          	lea    0x1(%r8),%eax
1403153e0:	89 03                	mov    %eax,(%rbx)
1403153e2:	eb 16                	jmp    0x1403153fa
1403153e4:	44 8b c2             	mov    %edx,%r8d
1403153e7:	c6 44 24 20 ff       	movb   $0xff,0x20(%rsp)
1403153ec:	48 8b d3             	mov    %rbx,%rdx
1403153ef:	49 8b ca             	mov    %r10,%rcx
1403153f2:	e8 d9 04 00 00       	call   0x1403158d0
1403153f7:	44 8b c8             	mov    %eax,%r9d
1403153fa:	48 8b 7c 24 30       	mov    0x30(%rsp),%rdi
1403153ff:	41 8d 81 00 28 ff ff 	lea    -0xd800(%r9),%eax
140315406:	44 89 0e             	mov    %r9d,(%rsi)
140315409:	ff 0b                	decl   (%rbx)
14031540b:	48 8b 74 24 50       	mov    0x50(%rsp),%rsi
140315410:	48 8b 5c 24 40       	mov    0x40(%rsp),%rbx
140315415:	3d ff 07 00 00       	cmp    $0x7ff,%eax
14031541a:	76 10                	jbe    0x14031542c
14031541c:	41 81 f9 00 00 11 00 	cmp    $0x110000,%r9d
140315423:	73 07                	jae    0x14031542c
140315425:	b0 01                	mov    $0x1,%al
140315427:	48 83 c4 38          	add    $0x38,%rsp
14031542b:	c3                   	ret
14031542c:	32 c0                	xor    %al,%al
14031542e:	48 83 c4 38          	add    $0x38,%rsp
140315432:	c3                   	ret
140315433:	cc                   	int3
140315434:	cc                   	int3
140315435:	cc                   	int3
140315436:	cc                   	int3
140315437:	cc                   	int3
140315438:	cc                   	int3
140315439:	cc                   	int3
14031543a:	cc                   	int3
14031543b:	cc                   	int3
14031543c:	cc                   	int3
14031543d:	cc                   	int3
14031543e:	cc                   	int3
14031543f:	cc                   	int3
140315440:	48 89 5c 24 08       	mov    %rbx,0x8(%rsp)
140315445:	4d 63 18             	movslq (%r8),%r11
140315448:	46 0f b7 14 59       	movzwl (%rcx,%r11,2),%r10d
14031544d:	41 8b c2             	mov    %r10d,%eax
140315450:	25 00 f8 ff ff       	and    $0xfffff800,%eax
140315455:	3d 00 d8 00 00       	cmp    $0xd800,%eax
14031545a:	75 3c                	jne    0x140315498
14031545c:	66 41 0f ba e2 0a    	bt     $0xa,%r10w
140315462:	72 56                	jb     0x1403154ba
140315464:	41 8d 43 01          	lea    0x1(%r11),%eax
140315468:	3b c2                	cmp    %edx,%eax
14031546a:	7d 4e                	jge    0x1403154ba
14031546c:	42 0f b7 4c 59 02    	movzwl 0x2(%rcx,%r11,2),%ecx
140315472:	8b c1                	mov    %ecx,%eax
140315474:	25 00 fc ff ff       	and    $0xfffffc00,%eax
140315479:	3d 00 dc 00 00       	cmp    $0xdc00,%eax
14031547e:	75 3a                	jne    0x1403154ba
140315480:	41 c1 e2 0a          	shl    $0xa,%r10d
140315484:	8d 81 00 24 a0 fc    	lea    -0x35fdc00(%rcx),%eax
14031548a:	41 03 c2             	add    %r10d,%eax
14031548d:	41 89 01             	mov    %eax,(%r9)
140315490:	41 ff 00             	incl   (%r8)
140315493:	45 8b 11             	mov    (%r9),%r10d
140315496:	eb 03                	jmp    0x14031549b
140315498:	45 89 11             	mov    %r10d,(%r9)
14031549b:	41 8d 82 00 28 ff ff 	lea    -0xd800(%r10),%eax
1403154a2:	3d ff 07 00 00       	cmp    $0x7ff,%eax
1403154a7:	76 11                	jbe    0x1403154ba
1403154a9:	41 81 fa 00 00 11 00 	cmp    $0x110000,%r10d
1403154b0:	73 08                	jae    0x1403154ba
1403154b2:	b0 01                	mov    $0x1,%al
1403154b4:	48 8b 5c 24 08       	mov    0x8(%rsp),%rbx
1403154b9:	c3                   	ret
1403154ba:	48 8b 5c 24 08       	mov    0x8(%rsp),%rbx
1403154bf:	32 c0                	xor    %al,%al
1403154c1:	c3                   	ret
1403154c2:	cc                   	int3
1403154c3:	cc                   	int3
1403154c4:	cc                   	int3
1403154c5:	cc                   	int3
1403154c6:	cc                   	int3
1403154c7:	cc                   	int3
1403154c8:	cc                   	int3
1403154c9:	cc                   	int3
1403154ca:	cc                   	int3
1403154cb:	cc                   	int3
1403154cc:	cc                   	int3
1403154cd:	cc                   	int3
1403154ce:	cc                   	int3
1403154cf:	cc                   	int3
1403154d0:	48 89 5c 24 10       	mov    %rbx,0x10(%rsp)
1403154d5:	48 89 74 24 18       	mov    %rsi,0x18(%rsp)
1403154da:	57                   	push   %rdi
1403154db:	48 83 ec 20          	sub    $0x20,%rsp
1403154df:	48 8b 5a 10          	mov    0x10(%rdx),%rbx
1403154e3:	48 8b fa             	mov    %rdx,%rdi
1403154e6:	8b f1                	mov    %ecx,%esi
1403154e8:	83 f9 7f             	cmp    $0x7f,%ecx
1403154eb:	77 60                	ja     0x14031554d
1403154ed:	48 8b 4a 18          	mov    0x18(%rdx),%rcx
1403154f1:	48 3b d9             	cmp    %rcx,%rbx
1403154f4:	73 2f                	jae    0x140315525
1403154f6:	48 8d 43 01          	lea    0x1(%rbx),%rax
1403154fa:	48 89 42 10          	mov    %rax,0x10(%rdx)
1403154fe:	48 83 f9 10          	cmp    $0x10,%rcx
140315502:	72 03                	jb     0x140315507
140315504:	48 8b 3a             	mov    (%rdx),%rdi
140315507:	40 88 34 1f          	mov    %sil,(%rdi,%rbx,1)
14031550b:	b8 01 00 00 00       	mov    $0x1,%eax
140315510:	c6 44 1f 01 00       	movb   $0x0,0x1(%rdi,%rbx,1)
140315515:	48 8b 5c 24 38       	mov    0x38(%rsp),%rbx
14031551a:	48 8b 74 24 40       	mov    0x40(%rsp),%rsi
14031551f:	48 83 c4 20          	add    $0x20,%rsp
140315523:	5f                   	pop    %rdi
140315524:	c3                   	ret
140315525:	45 33 c0             	xor    %r8d,%r8d
140315528:	44 0f b6 ce          	movzbl %sil,%r9d
14031552c:	48 8b cf             	mov    %rdi,%rcx
14031552f:	41 8d 50 01          	lea    0x1(%r8),%edx
140315533:	e8 58 5f eb ff       	call   0x1401cb490
140315538:	b8 01 00 00 00       	mov    $0x1,%eax
14031553d:	48 8b 5c 24 38       	mov    0x38(%rsp),%rbx
140315542:	48 8b 74 24 40       	mov    0x40(%rsp),%rsi
140315547:	48 83 c4 20          	add    $0x20,%rsp
14031554b:	5f                   	pop    %rdi
14031554c:	c3                   	ret
14031554d:	48 89 6c 24 30       	mov    %rbp,0x30(%rsp)
140315552:	48 8d 53 04          	lea    0x4(%rbx),%rdx
140315556:	45 33 c0             	xor    %r8d,%r8d
140315559:	48 8b cf             	mov    %rdi,%rcx
14031555c:	48 8b eb             	mov    %rbx,%rbp
14031555f:	e8 dc dc da ff       	call   0x1400c3240
140315564:	48 8b cf             	mov    %rdi,%rcx
140315567:	81 fe ff 07 00 00    	cmp    $0x7ff,%esi
14031556d:	77 16                	ja     0x140315585
14031556f:	48 83 7f 18 10       	cmpq   $0x10,0x18(%rdi)
140315574:	72 03                	jb     0x140315579
140315576:	48 8b 0f             	mov    (%rdi),%rcx
140315579:	8b c6                	mov    %esi,%eax
14031557b:	c1 e8 06             	shr    $0x6,%eax
14031557e:	0c c0                	or     $0xc0,%al
140315580:	88 04 19             	mov    %al,(%rcx,%rbx,1)
140315583:	eb 67                	jmp    0x1403155ec
140315585:	81 fe ff ff 00 00    	cmp    $0xffff,%esi
14031558b:	77 13                	ja     0x1403155a0
14031558d:	48 83 7f 18 10       	cmpq   $0x10,0x18(%rdi)
140315592:	72 03                	jb     0x140315597
140315594:	48 8b 0f             	mov    (%rdi),%rcx
140315597:	8b c6                	mov    %esi,%eax
140315599:	c1 e8 0c             	shr    $0xc,%eax
14031559c:	0c e0                	or     $0xe0,%al
14031559e:	eb 2d                	jmp    0x1403155cd
1403155a0:	48 83 7f 18 10       	cmpq   $0x10,0x18(%rdi)
1403155a5:	72 03                	jb     0x1403155aa
1403155a7:	48 8b 0f             	mov    (%rdi),%rcx
1403155aa:	8b c6                	mov    %esi,%eax
1403155ac:	c1 e8 12             	shr    $0x12,%eax
1403155af:	0c f0                	or     $0xf0,%al
1403155b1:	88 04 19             	mov    %al,(%rcx,%rbx,1)
1403155b4:	48 ff c3             	inc    %rbx
1403155b7:	48 83 7f 18 10       	cmpq   $0x10,0x18(%rdi)
1403155bc:	48 8b cf             	mov    %rdi,%rcx
1403155bf:	72 03                	jb     0x1403155c4
1403155c1:	48 8b 0f             	mov    (%rdi),%rcx
1403155c4:	8b c6                	mov    %esi,%eax
1403155c6:	c1 e8 0c             	shr    $0xc,%eax
1403155c9:	24 3f                	and    $0x3f,%al
1403155cb:	0c 80                	or     $0x80,%al
1403155cd:	88 04 19             	mov    %al,(%rcx,%rbx,1)
1403155d0:	48 ff c3             	inc    %rbx
1403155d3:	48 83 7f 18 10       	cmpq   $0x10,0x18(%rdi)
1403155d8:	48 8b cf             	mov    %rdi,%rcx
1403155db:	72 03                	jb     0x1403155e0
1403155dd:	48 8b 0f             	mov    (%rdi),%rcx
1403155e0:	8b c6                	mov    %esi,%eax
1403155e2:	c1 e8 06             	shr    $0x6,%eax
1403155e5:	24 3f                	and    $0x3f,%al
1403155e7:	0c 80                	or     $0x80,%al
1403155e9:	88 04 0b             	mov    %al,(%rbx,%rcx,1)
1403155ec:	48 83 7f 18 10       	cmpq   $0x10,0x18(%rdi)
1403155f1:	48 8b c7             	mov    %rdi,%rax
1403155f4:	72 03                	jb     0x1403155f9
1403155f6:	48 8b 07             	mov    (%rdi),%rax
1403155f9:	40 80 e6 3f          	and    $0x3f,%sil
1403155fd:	45 33 c0             	xor    %r8d,%r8d
140315600:	40 80 ce 80          	or     $0x80,%sil
140315604:	48 8b cf             	mov    %rdi,%rcx
140315607:	40 88 74 03 01       	mov    %sil,0x1(%rbx,%rax,1)
14031560c:	48 83 c3 02          	add    $0x2,%rbx
140315610:	48 8b d3             	mov    %rbx,%rdx
140315613:	e8 28 dc da ff       	call   0x1400c3240
140315618:	48 8b 74 24 40       	mov    0x40(%rsp),%rsi
14031561d:	48 2b dd             	sub    %rbp,%rbx
140315620:	48 8b 6c 24 30       	mov    0x30(%rsp),%rbp
140315625:	48 8b c3             	mov    %rbx,%rax
140315628:	48 8b 5c 24 38       	mov    0x38(%rsp),%rbx
14031562d:	48 83 c4 20          	add    $0x20,%rsp
140315631:	5f                   	pop    %rdi
140315632:	c3                   	ret
140315633:	cc                   	int3
140315634:	cc                   	int3
140315635:	cc                   	int3
140315636:	cc                   	int3
140315637:	cc                   	int3
140315638:	cc                   	int3
140315639:	cc                   	int3
14031563a:	cc                   	int3
14031563b:	cc                   	int3
14031563c:	cc                   	int3
14031563d:	cc                   	int3
14031563e:	cc                   	int3
14031563f:	cc                   	int3
140315640:	40 53                	rex push %rbx
140315642:	56                   	push   %rsi
140315643:	57                   	push   %rdi
140315644:	48 83 ec 20          	sub    $0x20,%rsp
140315648:	48 8b 7a 10          	mov    0x10(%rdx),%rdi
14031564c:	48 8b da             	mov    %rdx,%rbx
14031564f:	8b f1                	mov    %ecx,%esi
140315651:	81 f9 ff ff 00 00    	cmp    $0xffff,%ecx
140315657:	0f 87 39 01 00 00    	ja     0x140315796
14031565d:	48 89 6c 24 40       	mov    %rbp,0x40(%rsp)
140315662:	4c 89 64 24 48       	mov    %r12,0x48(%rsp)
140315667:	4c 89 74 24 50       	mov    %r14,0x50(%rsp)
14031566c:	4c 8b 72 18          	mov    0x18(%rdx),%r14
140315670:	4c 89 7c 24 58       	mov    %r15,0x58(%rsp)