1400276f9:	8a 47 02             	mov    0x2(%rdi),%al
1400276fc:	f6 d8                	neg    %al
1400276fe:	4d 1b c0             	sbb    %r8,%r8
140027701:	49 f7 d8             	neg    %r8
140027704:	49 83 c0 03          	add    $0x3,%r8
140027708:	4d 8b cc             	mov    %r12,%r9
14002770b:	48 8d 4c 24 50       	lea    0x50(%rsp),%rcx
140027710:	48 8b d7             	mov    %rdi,%rdx
140027713:	e8 8c 2b 00 00       	call   0x14002a2a4
140027718:	48 8b d0             	mov    %rax,%rdx
14002771b:	48 83 f8 ff          	cmp    $0xffffffffffffffff,%rax
14002771f:	74 75                	je     0x140027796
140027721:	48 85 c0             	test   %rax,%rax
140027724:	74 67                	je     0x14002778d
140027726:	8b 4c 24 50          	mov    0x50(%rsp),%ecx
14002772a:	81 f9 ff ff 00 00    	cmp    $0xffff,%ecx
140027730:	76 39                	jbe    0x14002776b
140027732:	48 83 fd 01          	cmp    $0x1,%rbp
140027736:	76 47                	jbe    0x14002777f
140027738:	81 c1 00 00 ff ff    	add    $0xffff0000,%ecx
14002773e:	41 b8 00 d8 00 00    	mov    $0xd800,%r8d
140027744:	8b c1                	mov    %ecx,%eax
140027746:	89 4c 24 50          	mov    %ecx,0x50(%rsp)
14002774a:	c1 e8 0a             	shr    $0xa,%eax
14002774d:	48 ff cd             	dec    %rbp
140027750:	66 41 0b c0          	or     %r8w,%ax
140027754:	66 89 03             	mov    %ax,(%rbx)
140027757:	b8 ff 03 00 00       	mov    $0x3ff,%eax
14002775c:	66 23 c8             	and    %ax,%cx
14002775f:	48 83 c3 02          	add    $0x2,%rbx
140027763:	b8 00 dc 00 00       	mov    $0xdc00,%eax
140027768:	66 0b c8             	or     %ax,%cx
14002776b:	66 89 0b             	mov    %cx,(%rbx)
14002776e:	48 03 fa             	add    %rdx,%rdi
140027771:	48 83 c3 02          	add    $0x2,%rbx
140027775:	48 83 ed 01          	sub    $0x1,%rbp
140027779:	0f 85 5f ff ff ff    	jne    0x1400276de
14002777f:	49 2b df             	sub    %r15,%rbx
140027782:	49 89 3e             	mov    %rdi,(%r14)
140027785:	48 d1 fb             	sar    $1,%rbx
140027788:	48 8b c3             	mov    %rbx,%rax
14002778b:	eb 1b                	jmp    0x1400277a8
14002778d:	49 8b fd             	mov    %r13,%rdi
140027790:	66 44 89 2b          	mov    %r13w,(%rbx)
140027794:	eb e9                	jmp    0x14002777f
140027796:	49 89 3e             	mov    %rdi,(%r14)
140027799:	e8 4e d2 fe ff       	call   0x1400149ec
14002779e:	c7 00 2a 00 00 00    	movl   $0x2a,(%rax)
1400277a4:	48 83 c8 ff          	or     $0xffffffffffffffff,%rax
1400277a8:	48 8b 5c 24 58       	mov    0x58(%rsp),%rbx
1400277ad:	48 8b 6c 24 60       	mov    0x60(%rsp),%rbp
1400277b2:	48 83 c4 20          	add    $0x20,%rsp
1400277b6:	41 5f                	pop    %r15
1400277b8:	41 5e                	pop    %r14
1400277ba:	41 5d                	pop    %r13
1400277bc:	41 5c                	pop    %r12
1400277be:	5f                   	pop    %rdi
1400277bf:	c3                   	ret
1400277c0:	49 8b dd             	mov    %r13,%rbx
1400277c3:	44 38 2f             	cmp    %r13b,(%rdi)
1400277c6:	75 08                	jne    0x1400277d0
1400277c8:	41 b8 01 00 00 00    	mov    $0x1,%r8d
1400277ce:	eb 1d                	jmp    0x1400277ed
1400277d0:	44 38 6f 01          	cmp    %r13b,0x1(%rdi)
1400277d4:	75 08                	jne    0x1400277de
1400277d6:	41 b8 02 00 00 00    	mov    $0x2,%r8d
1400277dc:	eb 0f                	jmp    0x1400277ed
1400277de:	8a 47 02             	mov    0x2(%rdi),%al
1400277e1:	f6 d8                	neg    %al
1400277e3:	4d 1b c0             	sbb    %r8,%r8
1400277e6:	49 f7 d8             	neg    %r8
1400277e9:	49 83 c0 03          	add    $0x3,%r8
1400277ed:	4d 8b cc             	mov    %r12,%r9
1400277f0:	48 8b d7             	mov    %rdi,%rdx
1400277f3:	33 c9                	xor    %ecx,%ecx
1400277f5:	e8 aa 2a 00 00       	call   0x14002a2a4
1400277fa:	48 83 f8 ff          	cmp    $0xffffffffffffffff,%rax
1400277fe:	74 99                	je     0x140027799
140027800:	48 85 c0             	test   %rax,%rax
140027803:	74 83                	je     0x140027788
140027805:	48 83 f8 04          	cmp    $0x4,%rax
140027809:	75 03                	jne    0x14002780e
14002780b:	48 ff c3             	inc    %rbx
14002780e:	48 03 f8             	add    %rax,%rdi
140027811:	48 ff c3             	inc    %rbx
140027814:	eb ad                	jmp    0x1400277c3
140027816:	cc                   	int3
140027817:	cc                   	int3
140027818:	48 83 ec 28          	sub    $0x28,%rsp
14002781c:	48 85 c9             	test   %rcx,%rcx
14002781f:	75 0f                	jne    0x140027830
140027821:	33 c0                	xor    %eax,%eax
140027823:	49 89 00             	mov    %rax,(%r8)
140027826:	b8 01 00 00 00       	mov    $0x1,%eax
14002782b:	e9 9a 00 00 00       	jmp    0x1400278ca
140027830:	85 d2                	test   %edx,%edx
140027832:	75 04                	jne    0x140027838
140027834:	88 11                	mov    %dl,(%rcx)
140027836:	eb e9                	jmp    0x140027821
140027838:	f7 c2 80 ff ff ff    	test   $0xffffff80,%edx
14002783e:	75 04                	jne    0x140027844
140027840:	88 11                	mov    %dl,(%rcx)
140027842:	eb e2                	jmp    0x140027826
140027844:	f7 c2 00 f8 ff ff    	test   $0xfffff800,%edx
14002784a:	75 0b                	jne    0x140027857
14002784c:	41 b9 01 00 00 00    	mov    $0x1,%r9d
140027852:	41 b2 c0             	mov    $0xc0,%r10b
140027855:	eb 39                	jmp    0x140027890
140027857:	f7 c2 00 00 ff ff    	test   $0xffff0000,%edx
14002785d:	75 18                	jne    0x140027877
14002785f:	8d 82 00 28 ff ff    	lea    -0xd800(%rdx),%eax
140027865:	3d ff 07 00 00       	cmp    $0x7ff,%eax
14002786a:	76 4a                	jbe    0x1400278b6
14002786c:	41 b9 02 00 00 00    	mov    $0x2,%r9d
140027872:	41 b2 e0             	mov    $0xe0,%r10b
140027875:	eb 19                	jmp    0x140027890
140027877:	f7 c2 00 00 e0 ff    	test   $0xffe00000,%edx
14002787d:	75 37                	jne    0x1400278b6
14002787f:	81 fa ff ff 10 00    	cmp    $0x10ffff,%edx
140027885:	77 2f                	ja     0x1400278b6
140027887:	41 b9 03 00 00 00    	mov    $0x3,%r9d
14002788d:	41 b2 f0             	mov    $0xf0,%r10b
140027890:	4d 8b d9             	mov    %r9,%r11
140027893:	8a c2                	mov    %dl,%al
140027895:	c1 ea 06             	shr    $0x6,%edx
140027898:	24 3f                	and    $0x3f,%al
14002789a:	0c 80                	or     $0x80,%al
14002789c:	41 88 04 0b          	mov    %al,(%r11,%rcx,1)
1400278a0:	49 83 eb 01          	sub    $0x1,%r11
1400278a4:	75 ed                	jne    0x140027893
1400278a6:	41 0a d2             	or     %r10b,%dl
1400278a9:	33 c0                	xor    %eax,%eax
1400278ab:	88 11                	mov    %dl,(%rcx)
1400278ad:	49 89 00             	mov    %rax,(%r8)
1400278b0:	49 8d 41 01          	lea    0x1(%r9),%rax
1400278b4:	eb 14                	jmp    0x1400278ca
1400278b6:	33 c0                	xor    %eax,%eax
1400278b8:	49 89 00             	mov    %rax,(%r8)
1400278bb:	e8 2c d1 fe ff       	call   0x1400149ec
1400278c0:	c7 00 2a 00 00 00    	movl   $0x2a,(%rax)
1400278c6:	48 83 c8 ff          	or     $0xffffffffffffffff,%rax
1400278ca:	48 83 c4 28          	add    $0x28,%rsp
1400278ce:	c3                   	ret
1400278cf:	cc                   	int3
1400278d0:	e9 43 ff ff ff       	jmp    0x140027818
1400278d5:	cc                   	int3
1400278d6:	cc                   	int3
1400278d7:	cc                   	int3
1400278d8:	48 89 5c 24 08       	mov    %rbx,0x8(%rsp)
1400278dd:	57                   	push   %rdi
1400278de:	48 83 ec 20          	sub    $0x20,%rsp
1400278e2:	45 8b d8             	mov    %r8d,%r11d
1400278e5:	4c 8b d1             	mov    %rcx,%r10
1400278e8:	48 85 c9             	test   %rcx,%rcx
1400278eb:	75 18                	jne    0x140027905
1400278ed:	e8 fa d0 fe ff       	call   0x1400149ec
1400278f2:	bb 16 00 00 00       	mov    $0x16,%ebx
1400278f7:	89 18                	mov    %ebx,(%rax)
1400278f9:	e8 9a 8e fe ff       	call   0x140010798
1400278fe:	8b c3                	mov    %ebx,%eax
140027900:	e9 aa 00 00 00       	jmp    0x1400279af
140027905:	48 85 d2             	test   %rdx,%rdx
140027908:	74 e3                	je     0x1400278ed
14002790a:	33 c0                	xor    %eax,%eax
14002790c:	c6 01 00             	movb   $0x0,(%rcx)
14002790f:	45 85 db             	test   %r11d,%r11d
140027912:	41 0f 4f c3          	cmovg  %r11d,%eax
140027916:	ff c0                	inc    %eax
140027918:	48 98                	cltq
14002791a:	48 3b d0             	cmp    %rax,%rdx
14002791d:	77 0c                	ja     0x14002792b
14002791f:	e8 c8 d0 fe ff       	call   0x1400149ec
140027924:	bb 22 00 00 00       	mov    $0x22,%ebx
140027929:	eb cc                	jmp    0x1400278f7
14002792b:	4d 85 c9             	test   %r9,%r9
14002792e:	74 bd                	je     0x1400278ed
140027930:	49 8b 59 08          	mov    0x8(%r9),%rbx
140027934:	4c 8d 41 01          	lea    0x1(%rcx),%r8
140027938:	c6 01 30             	movb   $0x30,(%rcx)
14002793b:	eb 21                	jmp    0x14002795e
14002793d:	0f b6 0b             	movzbl (%rbx),%ecx
140027940:	48 8d 43 01          	lea    0x1(%rbx),%rax
140027944:	84 c9                	test   %cl,%cl
140027946:	ba 30 00 00 00       	mov    $0x30,%edx
14002794b:	0f 45 d1             	cmovne %ecx,%edx
14002794e:	48 0f 44 c3          	cmove  %rbx,%rax
140027952:	41 88 10             	mov    %dl,(%r8)
140027955:	48 8b d8             	mov    %rax,%rbx
140027958:	49 ff c0             	inc    %r8
14002795b:	41 ff cb             	dec    %r11d
14002795e:	45 85 db             	test   %r11d,%r11d
140027961:	7f da                	jg     0x14002793d
140027963:	41 c6 00 00          	movb   $0x0,(%r8)
140027967:	78 1a                	js     0x140027983
140027969:	80 3b 35             	cmpb   $0x35,(%rbx)
14002796c:	7c 15                	jl     0x140027983
14002796e:	eb 04                	jmp    0x140027974
140027970:	41 c6 00 30          	movb   $0x30,(%r8)
140027974:	49 ff c8             	dec    %r8
140027977:	41 8a 00             	mov    (%r8),%al
14002797a:	3c 39                	cmp    $0x39,%al
14002797c:	74 f2                	je     0x140027970
14002797e:	fe c0                	inc    %al
140027980:	41 88 00             	mov    %al,(%r8)
140027983:	41 80 3a 31          	cmpb   $0x31,(%r10)
140027987:	75 06                	jne    0x14002798f
140027989:	41 ff 41 04          	incl   0x4(%r9)
14002798d:	eb 1e                	jmp    0x1400279ad
14002798f:	49 83 c8 ff          	or     $0xffffffffffffffff,%r8
140027993:	49 ff c0             	inc    %r8
140027996:	43 80 7c 02 01 00    	cmpb   $0x0,0x1(%r10,%r8,1)
14002799c:	75 f5                	jne    0x140027993
14002799e:	49 ff c0             	inc    %r8
1400279a1:	49 8d 52 01          	lea    0x1(%r10),%rdx
1400279a5:	49 8b ca             	mov    %r10,%rcx
1400279a8:	e8 63 65 fe ff       	call   0x14000df10
1400279ad:	33 c0                	xor    %eax,%eax
1400279af:	48 8b 5c 24 30       	mov    0x30(%rsp),%rbx
1400279b4:	48 83 c4 20          	add    $0x20,%rsp
1400279b8:	5f                   	pop    %rdi
1400279b9:	c3                   	ret
1400279ba:	cc                   	int3
1400279bb:	cc                   	int3
1400279bc:	40 55                	rex push %rbp
1400279be:	53                   	push   %rbx
1400279bf:	56                   	push   %rsi
1400279c0:	57                   	push   %rdi
1400279c1:	41 54                	push   %r12
1400279c3:	41 55                	push   %r13
1400279c5:	41 56                	push   %r14
1400279c7:	41 57                	push   %r15
1400279c9:	48 8d ac 24 28 f9 ff 	lea    -0x6d8(%rsp),%rbp
1400279d0:	ff
1400279d1:	48 81 ec d8 07 00 00 	sub    $0x7d8,%rsp
1400279d8:	48 8b 05 a1 c6 01 00 	mov    0x1c6a1(%rip),%rax        # 0x140044080
1400279df:	48 33 c4             	xor    %rsp,%rax
1400279e2:	48 89 85 c0 06 00 00 	mov    %rax,0x6c0(%rbp)
1400279e9:	48 89 4c 24 38       	mov    %rcx,0x38(%rsp)
1400279ee:	49 8b f1             	mov    %r9,%rsi
1400279f1:	48 8d 4c 24 58       	lea    0x58(%rsp),%rcx
1400279f6:	4c 89 4c 24 68       	mov    %r9,0x68(%rsp)
1400279fb:	4d 8b f0             	mov    %r8,%r14
1400279fe:	4c 89 44 24 78       	mov    %r8,0x78(%rsp)
140027a03:	8b fa                	mov    %edx,%edi
140027a05:	e8 76 2a 00 00       	call   0x14002a480
140027a0a:	8b 44 24 58          	mov    0x58(%rsp),%eax
140027a0e:	45 33 e4             	xor    %r12d,%r12d
140027a11:	83 e0 1f             	and    $0x1f,%eax
140027a14:	3c 1f                	cmp    $0x1f,%al
140027a16:	75 07                	jne    0x140027a1f
140027a18:	44 88 64 24 60       	mov    %r12b,0x60(%rsp)
140027a1d:	eb 0f                	jmp    0x140027a2e
140027a1f:	48 8d 4c 24 58       	lea    0x58(%rsp),%rcx
140027a24:	e8 c7 2a 00 00       	call   0x14002a4f0
140027a29:	c6 44 24 60 01       	movb   $0x1,0x60(%rsp)
140027a2e:	48 8b 44 24 38       	mov    0x38(%rsp),%rax
140027a33:	bb 20 00 00 00       	mov    $0x20,%ebx
140027a38:	48 85 c0             	test   %rax,%rax
140027a3b:	49 89 76 08          	mov    %rsi,0x8(%r14)
140027a3f:	8b cb                	mov    %ebx,%ecx
140027a41:	41 b9 ff 07 00 00    	mov    $0x7ff,%r9d
140027a47:	49 ba ff ff ff ff ff 	movabs $0xfffffffffffff,%r10
140027a4e:	ff 0f 00
140027a51:	8d 53 0d             	lea    0xd(%rbx),%edx
140027a54:	0f 48 ca             	cmovs  %edx,%ecx
140027a57:	48 8b d0             	mov    %rax,%rdx
140027a5a:	48 c1 ea 34          	shr    $0x34,%rdx
140027a5e:	41 89 0e             	mov    %ecx,(%r14)
140027a61:	49 23 d1             	and    %r9,%rdx
140027a64:	75 15                	jne    0x140027a7b
140027a66:	49 85 c2             	test   %rax,%r10
140027a69:	75 10                	jne    0x140027a7b
140027a6b:	45 89 66 04          	mov    %r12d,0x4(%r14)
140027a6f:	4c 8d 05 02 4e 01 00 	lea    0x14e02(%rip),%r8        # 0x14003c878
140027a76:	e9 3f 11 00 00       	jmp    0x140028bba
140027a7b:	49 3b d1             	cmp    %r9,%rdx
140027a7e:	74 05                	je     0x140027a85
140027a80:	41 8b cc             	mov    %r12d,%ecx
140027a83:	eb 41                	jmp    0x140027ac6
140027a85:	48 8b c8             	mov    %rax,%rcx
140027a88:	49 23 ca             	and    %r10,%rcx
140027a8b:	75 07                	jne    0x140027a94
140027a8d:	b9 01 00 00 00       	mov    $0x1,%ecx
140027a92:	eb 2a                	jmp    0x140027abe
140027a94:	48 85 c0             	test   %rax,%rax
140027a97:	79 16                	jns    0x140027aaf
140027a99:	48 ba 00 00 00 00 00 	movabs $0x8000000000000,%rdx
140027aa0:	00 08 00
140027aa3:	48 3b ca             	cmp    %rdx,%rcx
140027aa6:	75 07                	jne    0x140027aaf
140027aa8:	b9 04 00 00 00       	mov    $0x4,%ecx
140027aad:	eb 0f                	jmp    0x140027abe
140027aaf:	48 8b c8             	mov    %rax,%rcx
140027ab2:	48 c1 e9 33          	shr    $0x33,%rcx
140027ab6:	f7 d1                	not    %ecx
140027ab8:	83 e1 01             	and    $0x1,%ecx
140027abb:	83 c9 02             	or     $0x2,%ecx
140027abe:	41 c7 46 04 01 00 00 	movl   $0x1,0x4(%r14)
140027ac5:	00
140027ac6:	83 e9 01             	sub    $0x1,%ecx
140027ac9:	0f 84 00 11 00 00    	je     0x140028bcf
140027acf:	83 e9 01             	sub    $0x1,%ecx
140027ad2:	0f 84 db 10 00 00    	je     0x140028bb3
140027ad8:	83 e9 01             	sub    $0x1,%ecx
140027adb:	0f 84 c9 10 00 00    	je     0x140028baa
140027ae1:	83 f9 01             	cmp    $0x1,%ecx
140027ae4:	0f 84 b7 10 00 00    	je     0x140028ba1
140027aea:	48 b9 ff ff ff ff ff 	movabs $0x7fffffffffffffff,%rcx
140027af1:	ff ff 7f
140027af4:	be 02 00 00 00       	mov    $0x2,%esi
140027af9:	48 23 c1             	and    %rcx,%rax
140027afc:	48 89 44 24 38       	mov    %rax,0x38(%rsp)
140027b01:	ff c7                	inc    %edi
140027b03:	f2 0f 10 44 24 38    	movsd  0x38(%rsp),%xmm0
140027b09:	89 7c 24 50          	mov    %edi,0x50(%rsp)
140027b0d:	f2 0f 11 44 24 48    	movsd  %xmm0,0x48(%rsp)
140027b13:	48 8b 54 24 48       	mov    0x48(%rsp),%rdx
140027b18:	4c 8b c2             	mov    %rdx,%r8
140027b1b:	49 c1 e8 34          	shr    $0x34,%r8
140027b1f:	49 8b c8             	mov    %r8,%rcx
140027b22:	49 23 c9             	and    %r9,%rcx
140027b25:	48 8b c1             	mov    %rcx,%rax
140027b28:	48 f7 d8             	neg    %rax
140027b2b:	48 b8 00 00 00 00 00 	movabs $0x10000000000000,%rax
140027b32:	00 10 00
140027b35:	48 1b ff             	sbb    %rdi,%rdi
140027b38:	49 23 d2             	and    %r10,%rdx
140027b3b:	48 23 f8             	and    %rax,%rdi
140027b3e:	48 03 fa             	add    %rdx,%rdi
140027b41:	48 f7 d9             	neg    %rcx
140027b44:	1b c0                	sbb    %eax,%eax
140027b46:	45 23 c1             	and    %r9d,%r8d
140027b49:	44 8d 3c 06          	lea    (%rsi,%rax,1),%r15d
140027b4d:	45 03 f8             	add    %r8d,%r15d
140027b50:	e8 bb 2a 00 00       	call   0x14002a610
140027b55:	e8 e6 29 00 00       	call   0x14002a540
140027b5a:	f2 0f 2c c8          	cvttsd2si %xmm0,%ecx
140027b5e:	89 7d 84             	mov    %edi,-0x7c(%rbp)
140027b61:	8d 81 01 00 00 80    	lea    -0x7fffffff(%rcx),%eax
140027b67:	83 e0 fe             	and    $0xfffffffe,%eax
140027b6a:	f7 d8                	neg    %eax
140027b6c:	45 1b ed             	sbb    %r13d,%r13d
140027b6f:	48 c1 ef 20          	shr    $0x20,%rdi
140027b73:	44 23 e9             	and    %ecx,%r13d
140027b76:	89 7d 88             	mov    %edi,-0x78(%rbp)
140027b79:	8b c7                	mov    %edi,%eax
140027b7b:	44 89 6c 24 40       	mov    %r13d,0x40(%rsp)
140027b80:	f7 d8                	neg    %eax
140027b82:	1b d2                	sbb    %edx,%edx
140027b84:	f7 da                	neg    %edx