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)
140315675:	49 3b fe             	cmp    %r14,%rdi
140315678:	73 21                	jae    0x14031569b
14031567a:	48 8d 47 01          	lea    0x1(%rdi),%rax
14031567e:	48 89 42 10          	mov    %rax,0x10(%rdx)
140315682:	49 83 fe 08          	cmp    $0x8,%r14
140315686:	72 03                	jb     0x14031568b
140315688:	48 8b 1a             	mov    (%rdx),%rbx
14031568b:	33 c0                	xor    %eax,%eax
14031568d:	66 89 34 7b          	mov    %si,(%rbx,%rdi,2)
140315691:	66 89 44 7b 02       	mov    %ax,0x2(%rbx,%rdi,2)
140315696:	e9 da 00 00 00       	jmp    0x140315775
14031569b:	48 bd fe ff ff ff ff 	movabs $0x7ffffffffffffffe,%rbp
1403156a2:	ff ff 7f
1403156a5:	48 8b c5             	mov    %rbp,%rax
1403156a8:	48 2b c7             	sub    %rdi,%rax
1403156ab:	48 83 f8 01          	cmp    $0x1,%rax
1403156af:	0f 82 59 01 00 00    	jb     0x14031580e
1403156b5:	4c 8d 67 01          	lea    0x1(%rdi),%r12
1403156b9:	49 8b cc             	mov    %r12,%rcx
1403156bc:	48 83 c9 07          	or     $0x7,%rcx
1403156c0:	48 3b cd             	cmp    %rbp,%rcx
1403156c3:	77 1f                	ja     0x1403156e4
1403156c5:	49 8b d6             	mov    %r14,%rdx
1403156c8:	48 8b c5             	mov    %rbp,%rax
1403156cb:	48 d1 ea             	shr    $1,%rdx
1403156ce:	48 2b c2             	sub    %rdx,%rax
1403156d1:	4c 3b f0             	cmp    %rax,%r14
1403156d4:	77 0e                	ja     0x1403156e4
1403156d6:	4a 8d 04 32          	lea    (%rdx,%r14,1),%rax
1403156da:	48 8b e9             	mov    %rcx,%rbp
1403156dd:	48 3b c8             	cmp    %rax,%rcx
1403156e0:	48 0f 42 e8          	cmovb  %rax,%rbp
1403156e4:	48 8d 55 01          	lea    0x1(%rbp),%rdx
1403156e8:	48 8b cb             	mov    %rbx,%rcx
1403156eb:	e8 a0 54 eb ff       	call   0x1401cab90
1403156f0:	4c 89 63 10          	mov    %r12,0x10(%rbx)
1403156f4:	4c 8d 24 3f          	lea    (%rdi,%rdi,1),%r12
1403156f8:	48 89 6b 18          	mov    %rbp,0x18(%rbx)
1403156fc:	4d 8b c4             	mov    %r12,%r8
1403156ff:	4c 8b f8             	mov    %rax,%r15
140315702:	48 8b c8             	mov    %rax,%rcx
140315705:	49 83 fe 08          	cmp    $0x8,%r14
140315709:	72 52                	jb     0x14031575d
14031570b:	48 8b 3b             	mov    (%rbx),%rdi
14031570e:	48 8b d7             	mov    %rdi,%rdx
140315711:	e8 12 73 fe ff       	call   0x1402fca28
140315716:	33 c0                	xor    %eax,%eax
140315718:	66 43 89 34 3c       	mov    %si,(%r12,%r15,1)
14031571d:	4a 8d 14 75 02 00 00 	lea    0x2(,%r14,2),%rdx
140315724:	00
140315725:	66 43 89 44 3c 02    	mov    %ax,0x2(%r12,%r15,1)
14031572b:	48 81 fa 00 10 00 00 	cmp    $0x1000,%rdx
140315732:	72 18                	jb     0x14031574c
140315734:	48 8b 4f f8          	mov    -0x8(%rdi),%rcx
140315738:	48 83 c2 27          	add    $0x27,%rdx
14031573c:	48 2b f9             	sub    %rcx,%rdi
14031573f:	48 8d 47 f8          	lea    -0x8(%rdi),%rax
140315743:	48 83 f8 1f          	cmp    $0x1f,%rax
140315747:	77 0d                	ja     0x140315756
140315749:	48 8b f9             	mov    %rcx,%rdi
14031574c:	48 8b cf             	mov    %rdi,%rcx
14031574f:	e8 30 4b fe ff       	call   0x1402fa284
140315754:	eb 1c                	jmp    0x140315772
140315756:	ff 15 9c 48 01 00    	call   *0x1489c(%rip)        # 0x140329ff8
14031575c:	cc                   	int3
14031575d:	48 8b d3             	mov    %rbx,%rdx
140315760:	e8 c3 72 fe ff       	call   0x1402fca28
140315765:	33 c0                	xor    %eax,%eax
140315767:	66 43 89 34 3c       	mov    %si,(%r12,%r15,1)
14031576c:	66 43 89 44 3c 02    	mov    %ax,0x2(%r12,%r15,1)
140315772:	4c 89 3b             	mov    %r15,(%rbx)
140315775:	4c 8b 74 24 50       	mov    0x50(%rsp),%r14
14031577a:	b8 01 00 00 00       	mov    $0x1,%eax
14031577f:	4c 8b 64 24 48       	mov    0x48(%rsp),%r12
140315784:	48 8b 6c 24 40       	mov    0x40(%rsp),%rbp
140315789:	4c 8b 7c 24 58       	mov    0x58(%rsp),%r15
14031578e:	48 83 c4 20          	add    $0x20,%rsp
140315792:	5f                   	pop    %rdi
140315793:	5e                   	pop    %rsi
140315794:	5b                   	pop    %rbx
140315795:	c3                   	ret
140315796:	48 8d 4f 02          	lea    0x2(%rdi),%rcx
14031579a:	48 3b cf             	cmp    %rdi,%rcx
14031579d:	77 16                	ja     0x1403157b5
14031579f:	48 89 4a 10          	mov    %rcx,0x10(%rdx)
1403157a3:	48 83 7a 18 08       	cmpq   $0x8,0x18(%rdx)
1403157a8:	72 03                	jb     0x1403157ad
1403157aa:	48 8b 12             	mov    (%rdx),%rdx
1403157ad:	33 c0                	xor    %eax,%eax
1403157af:	66 89 04 4a          	mov    %ax,(%rdx,%rcx,2)
1403157b3:	eb 0f                	jmp    0x1403157c4
1403157b5:	45 33 c0             	xor    %r8d,%r8d
1403157b8:	48 8b cb             	mov    %rbx,%rcx
1403157bb:	41 8d 50 02          	lea    0x2(%r8),%edx
1403157bf:	e8 bc 55 eb ff       	call   0x1401cad80
1403157c4:	48 83 7b 18 08       	cmpq   $0x8,0x18(%rbx)
1403157c9:	48 8b cb             	mov    %rbx,%rcx
1403157cc:	72 03                	jb     0x1403157d1
1403157ce:	48 8b 0b             	mov    (%rbx),%rcx
1403157d1:	8b c6                	mov    %esi,%eax
1403157d3:	ba 40 28 00 00       	mov    $0x2840,%edx
1403157d8:	c1 e8 0a             	shr    $0xa,%eax
1403157db:	66 2b c2             	sub    %dx,%ax
1403157de:	66 89 04 79          	mov    %ax,(%rcx,%rdi,2)
1403157e2:	48 83 7b 18 08       	cmpq   $0x8,0x18(%rbx)
1403157e7:	72 03                	jb     0x1403157ec
1403157e9:	48 8b 1b             	mov    (%rbx),%rbx
1403157ec:	b9 ff 03 00 00       	mov    $0x3ff,%ecx
1403157f1:	b8 02 00 00 00       	mov    $0x2,%eax
1403157f6:	66 23 f1             	and    %cx,%si
1403157f9:	b9 00 dc 00 00       	mov    $0xdc00,%ecx
1403157fe:	66 0b f1             	or     %cx,%si
140315801:	66 89 74 7b 02       	mov    %si,0x2(%rbx,%rdi,2)
140315806:	48 83 c4 20          	add    $0x20,%rsp
14031580a:	5f                   	pop    %rdi
14031580b:	5e                   	pop    %rsi
14031580c:	5b                   	pop    %rbx
14031580d:	c3                   	ret
14031580e:	e8 2d 28 d7 ff       	call   0x140088040
140315813:	cc                   	int3
140315814:	cc                   	int3
140315815:	cc                   	int3
140315816:	cc                   	int3
140315817:	cc                   	int3
140315818:	cc                   	int3
140315819:	cc                   	int3
14031581a:	cc                   	int3
14031581b:	cc                   	int3
14031581c:	cc                   	int3
14031581d:	cc                   	int3
14031581e:	cc                   	int3
14031581f:	cc                   	int3
140315820:	48 89 5c 24 08       	mov    %rbx,0x8(%rsp)
140315825:	48 89 6c 24 10       	mov    %rbp,0x10(%rsp)
14031582a:	48 89 74 24 18       	mov    %rsi,0x18(%rsp)
14031582f:	57                   	push   %rdi
140315830:	41 54                	push   %r12
140315832:	41 56                	push   %r14
140315834:	48 83 ec 30          	sub    $0x30,%rsp
140315838:	49 8b f1             	mov    %r9,%rsi
14031583b:	49 8b e8             	mov    %r8,%rbp
14031583e:	48 8b fa             	mov    %rdx,%rdi
140315841:	48 8b d9             	mov    %rcx,%rbx
140315844:	e8 47 03 db ff       	call   0x1400c5b90
140315849:	48 89 74 24 28       	mov    %rsi,0x28(%rsp)
14031584e:	4c 8b cd             	mov    %rbp,%r9
140315851:	4c 8b c7             	mov    %rdi,%r8
140315854:	48 c7 44 24 20 00 00 	movq   $0x0,0x20(%rsp)
14031585b:	00 00
14031585d:	48 8b d3             	mov    %rbx,%rdx
140315860:	4c 8b f0             	mov    %rax,%r14
140315863:	48 8b 08             	mov    (%rax),%rcx
140315866:	ff 15 14 48 01 00    	call   *0x14814(%rip)        # 0x14032a080
14031586c:	85 c0                	test   %eax,%eax
14031586e:	41 bc ff ff ff ff    	mov    $0xffffffff,%r12d
140315874:	41 0f 48 c4          	cmovs  %r12d,%eax
140315878:	85 c0                	test   %eax,%eax
14031587a:	79 31                	jns    0x1403158ad
14031587c:	48 85 ff             	test   %rdi,%rdi
14031587f:	74 03                	je     0x140315884
140315881:	c6 03 00             	movb   $0x0,(%rbx)
140315884:	49 8b 0e             	mov    (%r14),%rcx
140315887:	4c 8b cd             	mov    %rbp,%r9
14031588a:	48 83 c9 02          	or     $0x2,%rcx
14031588e:	48 89 74 24 28       	mov    %rsi,0x28(%rsp)
140315893:	45 33 c0             	xor    %r8d,%r8d
140315896:	48 c7 44 24 20 00 00 	movq   $0x0,0x20(%rsp)
14031589d:	00 00
14031589f:	33 d2                	xor    %edx,%edx
1403158a1:	ff 15 d9 47 01 00    	call   *0x147d9(%rip)        # 0x14032a080
1403158a7:	85 c0                	test   %eax,%eax
1403158a9:	41 0f 48 c4          	cmovs  %r12d,%eax
1403158ad:	48 8b 5c 24 50       	mov    0x50(%rsp),%rbx
1403158b2:	48 8b 6c 24 58       	mov    0x58(%rsp),%rbp
1403158b7:	48 8b 74 24 60       	mov    0x60(%rsp),%rsi