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
140016fa7:	f2 0f 59 0d 91 d1 08 	mulsd  0x8d191(%rip),%xmm1        # 0x1400a4140
140016fae:	00
140016faf:	45 03 df             	add    %r15d,%r11d
140016fb2:	66 0f 2f c1          	comisd %xmm1,%xmm0
140016fb6:	73 ef                	jae    0x140016fa7
140016fb8:	eb 17                	jmp    0x140016fd1
140016fba:	66 0f 2f eb          	comisd %xmm3,%xmm5
140016fbe:	76 11                	jbe    0x140016fd1
140016fc0:	f2 0f 5e 0d 78 d1 08 	divsd  0x8d178(%rip),%xmm1        # 0x1400a4140
140016fc7:	00
140016fc8:	45 2b df             	sub    %r15d,%r11d
140016fcb:	66 0f 2f cb          	comisd %xmm3,%xmm1
140016fcf:	77 ef                	ja     0x140016fc0
140016fd1:	f2 0f 10 35 57 d1 08 	movsd  0x8d157(%rip),%xmm6        # 0x1400a4130
140016fd8:	00
140016fd9:	0f 28 e3             	movaps %xmm3,%xmm4
140016fdc:	8b d7                	mov    %edi,%edx
140016fde:	41 bc 09 00 00 00    	mov    $0x9,%r12d
140016fe4:	41 83 fb 05          	cmp    $0x5,%r11d
140016fe8:	77 76                	ja     0x140017060
140016fea:	66 0f 2f cd          	comisd %xmm5,%xmm1
140016fee:	45 8d 74 24 27       	lea    0x27(%r12),%r14d
140016ff3:	0f 28 f1             	movaps %xmm1,%xmm6
140016ff6:	72 5d                	jb     0x140017055
140016ff8:	8b cb                	mov    %ebx,%ecx
140016ffa:	8b d7                	mov    %edi,%edx
140016ffc:	41 8b c4             	mov    %r12d,%eax
140016fff:	66 0f 6e c0          	movd   %eax,%xmm0
140017003:	f3 0f e6 c0          	cvtdq2pd %xmm0,%xmm0
140017007:	f2 0f 59 c6          	mulsd  %xmm6,%xmm0
14001700b:	66 0f 2f e0          	comisd %xmm0,%xmm4
14001700f:	73 09                	jae    0x14001701a
140017011:	41 2b c7             	sub    %r15d,%eax
140017014:	85 c0                	test   %eax,%eax
140017016:	7f e7                	jg     0x140016fff
140017018:	eb 02                	jmp    0x14001701c
14001701a:	8b d0                	mov    %eax,%edx
14001701c:	48 3b cd             	cmp    %rbp,%rcx
14001701f:	0f 8d b2 03 00 00    	jge    0x1400173d7
140017025:	66 0f 6e c2          	movd   %edx,%xmm0
140017029:	41 8d 04 16          	lea    (%r14,%rdx,1),%eax
14001702d:	f3 0f e6 c0          	cvtdq2pd %xmm0,%xmm0
140017031:	66 89 04 4e          	mov    %ax,(%rsi,%rcx,2)
140017035:	41 03 df             	add    %r15d,%ebx
140017038:	49 03 cf             	add    %r15,%rcx
14001703b:	f2 0f 59 c6          	mulsd  %xmm6,%xmm0
14001703f:	f2 0f 5e 35 f9 d0 08 	divsd  0x8d0f9(%rip),%xmm6        # 0x1400a4140
140017046:	00
140017047:	f2 0f 58 d0          	addsd  %xmm0,%xmm2
14001704b:	66 0f 2f f5          	comisd %xmm5,%xmm6
14001704f:	f2 0f 5c e0          	subsd  %xmm0,%xmm4
140017053:	73 a5                	jae    0x140016ffa
140017055:	41 8b cb             	mov    %r11d,%ecx
140017058:	0f 28 cd             	movaps %xmm5,%xmm1
14001705b:	44 8b df             	mov    %edi,%r11d
14001705e:	eb 61                	jmp    0x1400170c1
140017060:	41 8d 43 04          	lea    0x4(%r11),%eax
140017064:	83 f8 03             	cmp    $0x3,%eax
140017067:	77 16                	ja     0x14001707f
140017069:	8b c3                	mov    %ebx,%eax
14001706b:	41 be 30 00 00 00    	mov    $0x30,%r14d
140017071:	66 44 89 34 41       	mov    %r14w,(%rcx,%rax,2)
140017076:	41 8d 4b 01          	lea    0x1(%r11),%ecx
14001707a:	44 8b df             	mov    %edi,%r11d
14001707d:	eb 3f                	jmp    0x1400170be
14001707f:	f2 0f 5e e1          	divsd  %xmm1,%xmm4
140017083:	41 8b c4             	mov    %r12d,%eax
140017086:	66 0f 6e c0          	movd   %eax,%xmm0
14001708a:	f3 0f e6 c0          	cvtdq2pd %xmm0,%xmm0
14001708e:	66 0f 2f e0          	comisd %xmm0,%xmm4
140017092:	73 09                	jae    0x14001709d
140017094:	41 2b c7             	sub    %r15d,%eax
140017097:	85 c0                	test   %eax,%eax
140017099:	7f eb                	jg     0x140017086
14001709b:	eb 02                	jmp    0x14001709f
14001709d:	8b d0                	mov    %eax,%edx
14001709f:	8b cb                	mov    %ebx,%ecx
1400170a1:	41 be 30 00 00 00    	mov    $0x30,%r14d
1400170a7:	66 0f 6e d2          	movd   %edx,%xmm2
1400170ab:	f3 0f e6 d2          	cvtdq2pd %xmm2,%xmm2
1400170af:	41 8d 04 16          	lea    (%r14,%rdx,1),%eax
1400170b3:	66 89 04 4e          	mov    %ax,(%rsi,%rcx,2)
1400170b7:	41 8b cf             	mov    %r15d,%ecx
1400170ba:	f2 0f 5c e2          	subsd  %xmm2,%xmm4
1400170be:	41 03 df             	add    %r15d,%ebx
1400170c1:	3b dd                	cmp    %ebp,%ebx
1400170c3:	0f 8d 0e 03 00 00    	jge    0x1400173d7
1400170c9:	48 63 c3             	movslq %ebx,%rax
1400170cc:	41 bd 2e 00 00 00    	mov    $0x2e,%r13d
1400170d2:	41 03 df             	add    %r15d,%ebx
1400170d5:	66 44 89 2c 46       	mov    %r13w,(%rsi,%rax,2)
1400170da:	83 f9 10             	cmp    $0x10,%ecx
1400170dd:	7d 73                	jge    0x140017152
1400170df:	4c 63 c3             	movslq %ebx,%r8
1400170e2:	8b d7                	mov    %edi,%edx
1400170e4:	41 8b c4             	mov    %r12d,%eax
1400170e7:	66 0f 6e c0          	movd   %eax,%xmm0
1400170eb:	f3 0f e6 c0          	cvtdq2pd %xmm0,%xmm0
1400170ef:	f2 0f 59 c6          	mulsd  %xmm6,%xmm0
1400170f3:	66 0f 2f e0          	comisd %xmm0,%xmm4
1400170f7:	73 09                	jae    0x140017102
1400170f9:	41 2b c7             	sub    %r15d,%eax
1400170fc:	85 c0                	test   %eax,%eax
1400170fe:	7f e7                	jg     0x1400170e7
140017100:	eb 02                	jmp    0x140017104
140017102:	8b d0                	mov    %eax,%edx
140017104:	83 f9 0f             	cmp    $0xf,%ecx
140017107:	74 4e                	je     0x140017157
140017109:	4c 3b c5             	cmp    %rbp,%r8
14001710c:	0f 8d c5 02 00 00    	jge    0x1400173d7
140017112:	66 0f 6e c2          	movd   %edx,%xmm0
140017116:	41 8d 04 16          	lea    (%r14,%rdx,1),%eax
14001711a:	f3 0f e6 c0          	cvtdq2pd %xmm0,%xmm0
14001711e:	66 42 89 04 46       	mov    %ax,(%rsi,%r8,2)
140017123:	41 03 df             	add    %r15d,%ebx
140017126:	4d 03 c7             	add    %r15,%r8
140017129:	f2 0f 59 c6          	mulsd  %xmm6,%xmm0
14001712d:	f2 0f 59 35 fb cf 08 	mulsd  0x8cffb(%rip),%xmm6        # 0x1400a4130
140017134:	00
140017135:	f2 0f 58 d0          	addsd  %xmm0,%xmm2
140017139:	f2 0f 5c e0          	subsd  %xmm0,%xmm4
14001713d:	0f 28 c2             	movaps %xmm2,%xmm0
140017140:	f2 0f 59 c1          	mulsd  %xmm1,%xmm0
140017144:	66 0f 2f c3          	comisd %xmm3,%xmm0
140017148:	73 08                	jae    0x140017152
14001714a:	41 03 cf             	add    %r15d,%ecx
14001714d:	83 f9 10             	cmp    $0x10,%ecx
140017150:	7c 90                	jl     0x1400170e2
140017152:	83 f9 0f             	cmp    $0xf,%ecx
140017155:	75 15                	jne    0x14001716c
140017157:	0f 28 c2             	movaps %xmm2,%xmm0
14001715a:	f2 0f 59 c1          	mulsd  %xmm1,%xmm0
14001715e:	66 0f 2f d8          	comisd %xmm0,%xmm3
140017162:	76 08                	jbe    0x14001716c
140017164:	8d 42 fb             	lea    -0x5(%rdx),%eax
140017167:	83 f8 04             	cmp    $0x4,%eax
14001716a:	76 20                	jbe    0x14001718c
14001716c:	83 f9 0e             	cmp    $0xe,%ecx
14001716f:	0f 85 f3 00 00 00    	jne    0x140017268
140017175:	f2 0f 59 d1          	mulsd  %xmm1,%xmm2
140017179:	66 0f 2f d3          	comisd %xmm3,%xmm2
14001717d:	0f 82 e5 00 00 00    	jb     0x140017268
140017183:	41 3b d4             	cmp    %r12d,%edx
140017186:	0f 85 dc 00 00 00    	jne    0x140017268
14001718c:	41 83 c9 ff          	or     $0xffffffff,%r9d
140017190:	41 2b df             	sub    %r15d,%ebx
140017193:	48 63 c3             	movslq %ebx,%rax
140017196:	45 8d 61 2e          	lea    0x2e(%r9),%r12d
14001719a:	4c 8d 04 46          	lea    (%rsi,%rax,2),%r8
14001719e:	41 0f b7 08          	movzwl (%r8),%ecx
1400171a2:	83 e9 2f             	sub    $0x2f,%ecx
1400171a5:	b8 67 66 66 66       	mov    $0x66666667,%eax
1400171aa:	f7 e9                	imul   %ecx
1400171ac:	c1 fa 02             	sar    $0x2,%edx
1400171af:	8b c2                	mov    %edx,%eax
1400171b1:	c1 e8 1f             	shr    $0x1f,%eax
1400171b4:	03 d0                	add    %eax,%edx
1400171b6:	8d 04 92             	lea    (%rdx,%rdx,4),%eax
1400171b9:	03 c0                	add    %eax,%eax
1400171bb:	2b c8                	sub    %eax,%ecx
1400171bd:	66 41 03 ce          	add    %r14w,%cx
1400171c1:	66 41 89 08          	mov    %cx,(%r8)
1400171c5:	66 41 3b ce          	cmp    %r14w,%cx
1400171c9:	74 0a                	je     0x1400171d5
1400171cb:	66 41 3b cc          	cmp    %r12w,%cx
1400171cf:	0f 85 86 00 00 00    	jne    0x14001725b
1400171d5:	49 83 e8 02          	sub    $0x2,%r8
1400171d9:	85 db                	test   %ebx,%ebx
1400171db:	7e 32                	jle    0x14001720f
1400171dd:	41 0f b7 10          	movzwl (%r8),%edx
1400171e1:	0f b7 ca             	movzwl %dx,%ecx
1400171e4:	66 41 3b d5          	cmp    %r13w,%dx
1400171e8:	75 0c                	jne    0x1400171f6
1400171ea:	49 83 e8 02          	sub    $0x2,%r8
1400171ee:	44 8d 4b ff          	lea    -0x1(%rbx),%r9d