140016b2b:	e8 80 be ff ff       	call   0x1400129b0
140016b30:	cc                   	int3
140016b31:	90                   	nop
140016b32:	90                   	nop
140016b33:	90                   	nop
140016b34:	48 89 5c 24 08       	mov    %rbx,0x8(%rsp)
140016b39:	48 89 74 24 10       	mov    %rsi,0x10(%rsp)
140016b3e:	48 89 7c 24 18       	mov    %rdi,0x18(%rsp)
140016b43:	41 57                	push   %r15
140016b45:	48 83 ec 20          	sub    $0x20,%rsp
140016b49:	45 33 c0             	xor    %r8d,%r8d
140016b4c:	49 8b d9             	mov    %r9,%rbx
140016b4f:	44 8b da             	mov    %edx,%r11d
140016b52:	4c 8b d1             	mov    %rcx,%r10
140016b55:	48 85 c9             	test   %rcx,%rcx
140016b58:	0f 84 d5 01 00 00    	je     0x140016d33
140016b5e:	44 8b 4c 24 50       	mov    0x50(%rsp),%r9d
140016b63:	85 d2                	test   %edx,%edx
140016b65:	0f 84 96 01 00 00    	je     0x140016d01
140016b6b:	41 8d 70 01          	lea    0x1(%r8),%esi
140016b6f:	41 bf 00 fc 00 00    	mov    $0xfc00,%r15d
140016b75:	45 3b c1             	cmp    %r9d,%r8d
140016b78:	7c 09                	jl     0x140016b83
140016b7a:	45 85 c9             	test   %r9d,%r9d
140016b7d:	0f 85 83 01 00 00    	jne    0x140016d06
140016b83:	41 0f b7 0a          	movzwl (%r10),%ecx
140016b87:	66 83 f9 7f          	cmp    $0x7f,%cx
140016b8b:	77 17                	ja     0x140016ba4
140016b8d:	45 85 c9             	test   %r9d,%r9d
140016b90:	0f 84 53 01 00 00    	je     0x140016ce9
140016b96:	41 8a 02             	mov    (%r10),%al
140016b99:	49 63 c8             	movslq %r8d,%rcx
140016b9c:	88 04 19             	mov    %al,(%rcx,%rbx,1)
140016b9f:	e9 45 01 00 00       	jmp    0x140016ce9
140016ba4:	b8 ff 07 00 00       	mov    $0x7ff,%eax
140016ba9:	66 41 39 02          	cmp    %ax,(%r10)
140016bad:	77 22                	ja     0x140016bd1
140016baf:	41 8d 40 02          	lea    0x2(%r8),%eax
140016bb3:	45 85 c9             	test   %r9d,%r9d
140016bb6:	0f 84 32 01 00 00    	je     0x140016cee
140016bbc:	41 3b c1             	cmp    %r9d,%eax
140016bbf:	0f 8f 3c 01 00 00    	jg     0x140016d01
140016bc5:	66 c1 e9 06          	shr    $0x6,%cx
140016bc9:	80 c9 c0             	or     $0xc0,%cl
140016bcc:	e9 00 01 00 00       	jmp    0x140016cd1
140016bd1:	0f b7 c1             	movzwl %cx,%eax
140016bd4:	ba 00 d8 00 00       	mov    $0xd800,%edx
140016bd9:	66 41 23 c7          	and    %r15w,%ax
140016bdd:	66 3b c2             	cmp    %dx,%ax
140016be0:	0f 85 bf 00 00 00    	jne    0x140016ca5
140016be6:	41 83 fb 02          	cmp    $0x2,%r11d
140016bea:	7c 18                	jl     0x140016c04
140016bec:	41 0f b7 42 02       	movzwl 0x2(%r10),%eax
140016bf1:	33 d2                	xor    %edx,%edx
140016bf3:	66 41 23 c7          	and    %r15w,%ax
140016bf7:	bf 00 dc 00 00       	mov    $0xdc00,%edi
140016bfc:	66 3b c7             	cmp    %di,%ax
140016bff:	0f 95 c2             	setne  %dl
140016c02:	eb 02                	jmp    0x140016c06
140016c04:	8b d6                	mov    %esi,%edx
140016c06:	85 d2                	test   %edx,%edx
140016c08:	0f 85 97 00 00 00    	jne    0x140016ca5
140016c0e:	41 83 fb 02          	cmp    $0x2,%r11d
140016c12:	0f 8c e9 00 00 00    	jl     0x140016d01
140016c18:	41 8d 40 04          	lea    0x4(%r8),%eax
140016c1c:	45 85 c9             	test   %r9d,%r9d
140016c1f:	74 77                	je     0x140016c98
140016c21:	41 3b c1             	cmp    %r9d,%eax
140016c24:	0f 8f d7 00 00 00    	jg     0x140016d01
140016c2a:	c1 e9 06             	shr    $0x6,%ecx
140016c2d:	83 e1 0f             	and    $0xf,%ecx
140016c30:	49 63 c0             	movslq %r8d,%rax
140016c33:	44 03 c6             	add    %esi,%r8d
140016c36:	8d 51 01             	lea    0x1(%rcx),%edx
140016c39:	8b ca                	mov    %edx,%ecx
140016c3b:	80 e2 03             	and    $0x3,%dl
140016c3e:	c1 e9 02             	shr    $0x2,%ecx
140016c41:	80 ca f8             	or     $0xf8,%dl
140016c44:	80 c9 f0             	or     $0xf0,%cl
140016c47:	c0 e2 04             	shl    $0x4,%dl
140016c4a:	88 0c 18             	mov    %cl,(%rax,%rbx,1)
140016c4d:	41 8a 0a             	mov    (%r10),%cl
140016c50:	c0 e9 02             	shr    $0x2,%cl
140016c53:	80 e1 0f             	and    $0xf,%cl
140016c56:	49 63 c0             	movslq %r8d,%rax
140016c59:	0a ca                	or     %dl,%cl
140016c5b:	44 03 c6             	add    %esi,%r8d
140016c5e:	88 0c 18             	mov    %cl,(%rax,%rbx,1)
140016c61:	41 0f b7 42 02       	movzwl 0x2(%r10),%eax
140016c66:	41 8a 0a             	mov    (%r10),%cl
140016c69:	80 e1 03             	and    $0x3,%cl
140016c6c:	66 c1 e8 06          	shr    $0x6,%ax
140016c70:	80 c9 f8             	or     $0xf8,%cl
140016c73:	24 0f                	and    $0xf,%al
140016c75:	c0 e1 04             	shl    $0x4,%cl
140016c78:	0a c8                	or     %al,%cl
140016c7a:	49 63 c0             	movslq %r8d,%rax
140016c7d:	44 03 c6             	add    %esi,%r8d
140016c80:	88 0c 18             	mov    %cl,(%rax,%rbx,1)
140016c83:	41 8a 4a 02          	mov    0x2(%r10),%cl
140016c87:	49 63 c0             	movslq %r8d,%rax
140016c8a:	80 e1 3f             	and    $0x3f,%cl
140016c8d:	80 c9 80             	or     $0x80,%cl
140016c90:	44 03 c6             	add    %esi,%r8d
140016c93:	88 0c 18             	mov    %cl,(%rax,%rbx,1)
140016c96:	eb 03                	jmp    0x140016c9b
140016c98:	44 8b c0             	mov    %eax,%r8d
140016c9b:	49 83 c2 04          	add    $0x4,%r10
140016c9f:	41 83 eb 02          	sub    $0x2,%r11d
140016ca3:	eb 53                	jmp    0x140016cf8
140016ca5:	41 8d 40 03          	lea    0x3(%r8),%eax
140016ca9:	45 85 c9             	test   %r9d,%r9d
140016cac:	74 40                	je     0x140016cee
140016cae:	41 3b c1             	cmp    %r9d,%eax
140016cb1:	7f 4e                	jg     0x140016d01
140016cb3:	66 c1 e9 0c          	shr    $0xc,%cx
140016cb7:	80 c9 e0             	or     $0xe0,%cl
140016cba:	49 63 c0             	movslq %r8d,%rax
140016cbd:	44 03 c6             	add    %esi,%r8d
140016cc0:	88 0c 18             	mov    %cl,(%rax,%rbx,1)
140016cc3:	41 0f b7 0a          	movzwl (%r10),%ecx
140016cc7:	66 c1 e9 06          	shr    $0x6,%cx
140016ccb:	80 e1 3f             	and    $0x3f,%cl
140016cce:	80 c9 80             	or     $0x80,%cl
140016cd1:	49 63 c0             	movslq %r8d,%rax
140016cd4:	44 03 c6             	add    %esi,%r8d
140016cd7:	88 0c 18             	mov    %cl,(%rax,%rbx,1)
140016cda:	41 8a 0a             	mov    (%r10),%cl
140016cdd:	49 63 c0             	movslq %r8d,%rax
140016ce0:	80 e1 3f             	and    $0x3f,%cl
140016ce3:	80 c9 80             	or     $0x80,%cl
140016ce6:	88 0c 18             	mov    %cl,(%rax,%rbx,1)
140016ce9:	44 03 c6             	add    %esi,%r8d
140016cec:	eb 03                	jmp    0x140016cf1
140016cee:	44 8b c0             	mov    %eax,%r8d
140016cf1:	49 83 c2 02          	add    $0x2,%r10
140016cf5:	44 2b de             	sub    %esi,%r11d
140016cf8:	45 85 db             	test   %r11d,%r11d
140016cfb:	0f 85 74 fe ff ff    	jne    0x140016b75
140016d01:	45 85 c9             	test   %r9d,%r9d
140016d04:	74 14                	je     0x140016d1a
140016d06:	45 85 db             	test   %r11d,%r11d
140016d09:	7e 0f                	jle    0x140016d1a
140016d0b:	b9 7a 00 00 00       	mov    $0x7a,%ecx
140016d10:	ff 15 02 83 05 00    	call   *0x58302(%rip)        # 0x14006f018
140016d16:	33 c0                	xor    %eax,%eax
140016d18:	eb 03                	jmp    0x140016d1d
140016d1a:	41 8b c0             	mov    %r8d,%eax
140016d1d:	48 8b 5c 24 30       	mov    0x30(%rsp),%rbx
140016d22:	48 8b 74 24 38       	mov    0x38(%rsp),%rsi
140016d27:	48 8b 7c 24 40       	mov    0x40(%rsp),%rdi
140016d2c:	48 83 c4 20          	add    $0x20,%rsp
140016d30:	41 5f                	pop    %r15
140016d32:	c3                   	ret
140016d33:	33 d2                	xor    %edx,%edx
140016d35:	b9 59 96 65 01       	mov    $0x1659659,%ecx
140016d3a:	e8 71 bc ff ff       	call   0x1400129b0
140016d3f:	cc                   	int3
140016d40:	45 33 c9             	xor    %r9d,%r9d
140016d43:	eb 16                	jmp    0x140016d5b
140016d45:	41 83 f8 01          	cmp    $0x1,%r8d
140016d49:	7e 16                	jle    0x140016d61
140016d4b:	0f b6 c0             	movzbl %al,%eax
140016d4e:	48 ff c1             	inc    %rcx
140016d51:	66 89 02             	mov    %ax,(%rdx)
140016d54:	48 83 c2 02          	add    $0x2,%rdx
140016d58:	41 ff c8             	dec    %r8d
140016d5b:	8a 01                	mov    (%rcx),%al
140016d5d:	84 c0                	test   %al,%al
140016d5f:	75 e4                	jne    0x140016d45
140016d61:	45 85 c0             	test   %r8d,%r8d
140016d64:	7e 04                	jle    0x140016d6a
140016d66:	66 44 89 0a          	mov    %r9w,(%rdx)
140016d6a:	c3                   	ret
140016d6b:	90                   	nop
140016d6c:	48 89 5c 24 08       	mov    %rbx,0x8(%rsp)
140016d71:	48 89 6c 24 10       	mov    %rbp,0x10(%rsp)
140016d76:	48 89 74 24 18       	mov    %rsi,0x18(%rsp)
140016d7b:	57                   	push   %rdi
140016d7c:	48 83 ec 30          	sub    $0x30,%rsp
140016d80:	33 c0                	xor    %eax,%eax
140016d82:	41 8b f8             	mov    %r8d,%edi
140016d85:	48 8b da             	mov    %rdx,%rbx
140016d88:	48 8b e9             	mov    %rcx,%rbp
140016d8b:	48 85 d2             	test   %rdx,%rdx
140016d8e:	74 08                	je     0x140016d98
140016d90:	45 85 c0             	test   %r8d,%r8d
140016d93:	7e 03                	jle    0x140016d98
140016d95:	66 89 02             	mov    %ax,(%rdx)
140016d98:	89 44 24 28          	mov    %eax,0x28(%rsp)
140016d9c:	41 83 c9 ff          	or     $0xffffffff,%r9d
140016da0:	4c 8b c5             	mov    %rbp,%r8
140016da3:	48 89 44 24 20       	mov    %rax,0x20(%rsp)
140016da8:	33 d2                	xor    %edx,%edx
140016daa:	33 c9                	xor    %ecx,%ecx
140016dac:	ff 15 3e 83 05 00    	call   *0x5833e(%rip)        # 0x14006f0f0
140016db2:	8b f0                	mov    %eax,%esi
140016db4:	3b c7                	cmp    %edi,%eax
140016db6:	77 1a                	ja     0x140016dd2
140016db8:	89 7c 24 28          	mov    %edi,0x28(%rsp)
140016dbc:	41 83 c9 ff          	or     $0xffffffff,%r9d
140016dc0:	4c 8b c5             	mov    %rbp,%r8
140016dc3:	48 89 5c 24 20       	mov    %rbx,0x20(%rsp)
140016dc8:	33 d2                	xor    %edx,%edx
140016dca:	33 c9                	xor    %ecx,%ecx
140016dcc:	ff 15 1e 83 05 00    	call   *0x5831e(%rip)        # 0x14006f0f0
140016dd2:	48 8b 5c 24 40       	mov    0x40(%rsp),%rbx
140016dd7:	8d 46 ff             	lea    -0x1(%rsi),%eax
140016dda:	48 8b 74 24 50       	mov    0x50(%rsp),%rsi
140016ddf:	48 8b 6c 24 48       	mov    0x48(%rsp),%rbp
140016de4:	48 83 c4 30          	add    $0x30,%rsp
140016de8:	5f                   	pop    %rdi
140016de9:	c3                   	ret
140016dea:	90                   	nop
140016deb:	90                   	nop
140016dec:	48 89 5c 24 08       	mov    %rbx,0x8(%rsp)
140016df1:	48 89 6c 24 10       	mov    %rbp,0x10(%rsp)
140016df6:	48 89 74 24 18       	mov    %rsi,0x18(%rsp)
140016dfb:	57                   	push   %rdi
140016dfc:	48 83 ec 40          	sub    $0x40,%rsp
140016e00:	48 8b f2             	mov    %rdx,%rsi
140016e03:	48 8b d9             	mov    %rcx,%rbx
140016e06:	bd 00 00 01 00       	mov    $0x10000,%ebp
140016e0b:	48 85 d2             	test   %rdx,%rdx
140016e0e:	75 04                	jne    0x140016e14
140016e10:	33 ff                	xor    %edi,%edi
140016e12:	eb 0f                	jmp    0x140016e23
140016e14:	48 8b d5             	mov    %rbp,%rdx
140016e17:	48 8b ce             	mov    %rsi,%rcx
140016e1a:	ff 15 48 87 05 00    	call   *0x58748(%rip)        # 0x14006f568
140016e20:	48 8b f8             	mov    %rax,%rdi
140016e23:	48 3b fd             	cmp    %rbp,%rdi
140016e26:	73 7c                	jae    0x140016ea4
140016e28:	0f 57 c0             	xorps  %xmm0,%xmm0
140016e2b:	0f 11 03             	movups %xmm0,(%rbx)
140016e2e:	48 83 63 10 00       	andq   $0x0,0x10(%rbx)
140016e33:	48 c7 43 18 0f 00 00 	movq   $0xf,0x18(%rbx)
140016e3a:	00
140016e3b:	c6 03 00             	movb   $0x0,(%rbx)
140016e3e:	48 85 ff             	test   %rdi,%rdi
140016e41:	74 49                	je     0x140016e8c
140016e43:	83 64 24 28 00       	andl   $0x0,0x28(%rsp)
140016e48:	48 83 64 24 20 00    	andq   $0x0,0x20(%rsp)
140016e4e:	44 8b cf             	mov    %edi,%r9d
140016e51:	4c 8b c6             	mov    %rsi,%r8
140016e54:	e8 8f f9 ff ff       	call   0x1400167e8
140016e59:	48 63 e8             	movslq %eax,%rbp
140016e5c:	85 c0                	test   %eax,%eax
140016e5e:	7e 2c                	jle    0x140016e8c
140016e60:	48 8b d5             	mov    %rbp,%rdx
140016e63:	48 8b cb             	mov    %rbx,%rcx
140016e66:	e8 d9 bf ff ff       	call   0x140012e44
140016e6b:	48 8b cb             	mov    %rbx,%rcx
140016e6e:	48 83 7b 18 0f       	cmpq   $0xf,0x18(%rbx)
140016e73:	76 03                	jbe    0x140016e78
140016e75:	48 8b 0b             	mov    (%rbx),%rcx
140016e78:	89 6c 24 28          	mov    %ebp,0x28(%rsp)
140016e7c:	48 89 4c 24 20       	mov    %rcx,0x20(%rsp)
140016e81:	44 8b cf             	mov    %edi,%r9d
140016e84:	4c 8b c6             	mov    %rsi,%r8
140016e87:	e8 5c f9 ff ff       	call   0x1400167e8
140016e8c:	48 8b c3             	mov    %rbx,%rax
140016e8f:	48 8b 5c 24 50       	mov    0x50(%rsp),%rbx
140016e94:	48 8b 6c 24 58       	mov    0x58(%rsp),%rbp
140016e99:	48 8b 74 24 60       	mov    0x60(%rsp),%rsi
140016e9e:	48 83 c4 40          	add    $0x40,%rsp
140016ea2:	5f                   	pop    %rdi
140016ea3:	c3                   	ret
140016ea4:	33 d2                	xor    %edx,%edx
140016ea6:	b9 53 20 54 01       	mov    $0x1542053,%ecx
140016eab:	e8 00 bb ff ff       	call   0x1400129b0
140016eb0:	cc                   	int3
140016eb1:	90                   	nop
140016eb2:	90                   	nop
140016eb3:	90                   	nop
140016eb4:	b9 05 00 00 00       	mov    $0x5,%ecx
140016eb9:	cd 29                	int    $0x29
140016ebb:	c3                   	ret
140016ebc:	48 8b c4             	mov    %rsp,%rax
140016ebf:	48 89 58 08          	mov    %rbx,0x8(%rax)
140016ec3:	48 89 68 10          	mov    %rbp,0x10(%rax)
140016ec7:	48 89 70 18          	mov    %rsi,0x18(%rax)
140016ecb:	57                   	push   %rdi
140016ecc:	41 54                	push   %r12
140016ece:	41 55                	push   %r13
140016ed0:	41 56                	push   %r14
140016ed2:	41 57                	push   %r15
140016ed4:	48 83 ec 30          	sub    $0x30,%rsp
140016ed8:	48 63 ea             	movslq %edx,%rbp
140016edb:	41 bf 01 00 00 00    	mov    $0x1,%r15d
140016ee1:	33 ff                	xor    %edi,%edi
140016ee3:	0f 29 70 c8          	movaps %xmm6,-0x38(%rax)
140016ee7:	48 8b f1             	mov    %rcx,%rsi
140016eea:	41 3b ef             	cmp    %r15d,%ebp
140016eed:	7f 10                	jg     0x140016eff
140016eef:	85 d2                	test   %edx,%edx
140016ef1:	0f 8e e3 04 00 00    	jle    0x1400173da
140016ef7:	66 89 39             	mov    %di,(%rcx)
140016efa:	e9 db 04 00 00       	jmp    0x1400173da
140016eff:	44 8b d7             	mov    %edi,%r10d
140016f02:	0f 57 d2             	xorps  %xmm2,%xmm2
140016f05:	66 0f 2f d3          	comisd %xmm3,%xmm2
140016f09:	8b df                	mov    %edi,%ebx
140016f0b:	41 0f 97 c2          	seta   %r10b
140016f0f:	45 85 d2             	test   %r10d,%r10d
140016f12:	74 08                	je     0x140016f1c
140016f14:	66 c7 01 2d 00       	movw   $0x2d,(%rcx)
140016f19:	41 8b df             	mov    %r15d,%ebx
140016f1c:	0f 54 1d 5d d2 08 00 	andps  0x8d25d(%rip),%xmm3        # 0x1400a4180
140016f23:	66 0f 2f 1d 25 d2 08 	comisd 0x8d225(%rip),%xmm3        # 0x1400a4150
140016f2a:	00
140016f2b:	f2 0f 10 2d 05 d2 08 	movsd  0x8d205(%rip),%xmm5        # 0x1400a4138
140016f32:	00
140016f33:	0f 28 cd             	movaps %xmm5,%xmm1
140016f36:	76 40                	jbe    0x140016f78
140016f38:	83 fd 06             	cmp    $0x6,%ebp
140016f3b:	0f 8e 96 04 00 00    	jle    0x1400173d7
140016f41:	8b c5                	mov    %ebp,%eax
140016f43:	2b c3                	sub    %ebx,%eax
140016f45:	85 c0                	test   %eax,%eax
140016f47:	7e 1f                	jle    0x140016f68
140016f49:	8b c3                	mov    %ebx,%eax
140016f4b:	4c 8d 05 5e c8 08 00 	lea    0x8c85e(%rip),%r8        # 0x1400a37b0
140016f52:	8b cb                	mov    %ebx,%ecx
140016f54:	48 8b d5             	mov    %rbp,%rdx
140016f57:	48 2b d0             	sub    %rax,%rdx
140016f5a:	49 83 c9 ff          	or     $0xffffffffffffffff,%r9
140016f5e:	48 8d 0c 4e          	lea    (%rsi,%rcx,2),%rcx
140016f62:	ff 15 18 86 05 00    	call   *0x58618(%rip)        # 0x14006f580
140016f68:	8d 4b 06             	lea    0x6(%rbx),%ecx
140016f6b:	8d 45 ff             	lea    -0x1(%rbp),%eax
140016f6e:	3b c8                	cmp    %eax,%ecx
140016f70:	0f 4c c1             	cmovl  %ecx,%eax
140016f73:	e9 64 04 00 00       	jmp    0x1400173dc
140016f78:	66 0f 2e da          	ucomisd %xmm2,%xmm3
140016f7c:	7a 02                	jp     0x140016f80
140016f7e:	74 08                	je     0x140016f88
140016f80:	66 0f 2e dd          	ucomisd %xmm5,%xmm3
140016f84:	7a 07                	jp     0x140016f8d
140016f86:	75 05                	jne    0x140016f8d
140016f88:	44 8b df             	mov    %edi,%r11d
140016f8b:	eb 44                	jmp    0x140016fd1
140016f8d:	66 0f 2f dd          	comisd %xmm5,%xmm3
140016f91:	44 8b df             	mov    %edi,%r11d
140016f94:	76 24                	jbe    0x140016fba
140016f96:	0f 28 c3             	movaps %xmm3,%xmm0
140016f99:	f2 0f 5e 05 9f d1 08 	divsd  0x8d19f(%rip),%xmm0        # 0x1400a4140
140016fa0:	00
140016fa1:	66 0f 2f c5          	comisd %xmm5,%xmm0
140016fa5:	72 2a                	jb     0x140016fd1