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
1400171f2:	41 0f b7 08          	movzwl (%r8),%ecx
1400171f6:	66 41 3b d5          	cmp    %r13w,%dx
1400171fa:	8b c7                	mov    %edi,%eax
1400171fc:	0f 94 c0             	sete   %al
1400171ff:	41 03 c7             	add    %r15d,%eax
140017202:	2b d8                	sub    %eax,%ebx
140017204:	66 41 3b cc          	cmp    %r12w,%cx
140017208:	74 bb                	je     0x1400171c5
14001720a:	0f b7 c9             	movzwl %cx,%ecx
14001720d:	eb 93                	jmp    0x1400171a2
14001720f:	45 8b c2             	mov    %r10d,%r8d
140017212:	41 83 c9 ff          	or     $0xffffffff,%r9d
140017216:	41 8b da             	mov    %r10d,%ebx
140017219:	4a 8d 14 46          	lea    (%rsi,%r8,2),%rdx
14001721d:	66 44 39 32          	cmp    %r14w,(%rdx)
140017221:	75 10                	jne    0x140017233
140017223:	48 8b c2             	mov    %rdx,%rax
140017226:	41 03 df             	add    %r15d,%ebx
140017229:	48 8d 40 02          	lea    0x2(%rax),%rax
14001722d:	66 44 39 30          	cmp    %r14w,(%rax)
140017231:	74 f3                	je     0x140017226
140017233:	41 03 df             	add    %r15d,%ebx
140017236:	45 85 db             	test   %r11d,%r11d
140017239:	75 18                	jne    0x140017253
14001723b:	48 63 cb             	movslq %ebx,%rcx
14001723e:	eb 0c                	jmp    0x14001724c
140017240:	0f b7 04 4e          	movzwl (%rsi,%rcx,2),%eax
140017244:	66 89 44 4e 02       	mov    %ax,0x2(%rsi,%rcx,2)
140017249:	49 2b cf             	sub    %r15,%rcx
14001724c:	49 3b c8             	cmp    %r8,%rcx
14001724f:	7d ef                	jge    0x140017240
140017251:	eb 03                	jmp    0x140017256
140017253:	45 03 df             	add    %r15d,%r11d
140017256:	66 c7 02 31 00       	movw   $0x31,(%rdx)
14001725b:	45 85 c9             	test   %r9d,%r9d
14001725e:	44 0f 48 cb          	cmovs  %ebx,%r9d
140017262:	43 8d 1c 0f          	lea    (%r15,%r9,1),%ebx
140017266:	eb 06                	jmp    0x14001726e
140017268:	41 bc 2d 00 00 00    	mov    $0x2d,%r12d
14001726e:	48 63 c3             	movslq %ebx,%rax
140017271:	66 44 39 74 46 fe    	cmp    %r14w,-0x2(%rsi,%rax,2)
140017277:	75 14                	jne    0x14001728d
140017279:	48 ff c8             	dec    %rax
14001727c:	48 8d 04 46          	lea    (%rsi,%rax,2),%rax
140017280:	41 2b df             	sub    %r15d,%ebx
140017283:	48 8d 40 fe          	lea    -0x2(%rax),%rax
140017287:	66 44 39 30          	cmp    %r14w,(%rax)
14001728b:	74 f3                	je     0x140017280
14001728d:	48 63 c3             	movslq %ebx,%rax
140017290:	44 8d 53 01          	lea    0x1(%rbx),%r10d
140017294:	66 44 39 6c 46 fe    	cmp    %r13w,-0x2(%rsi,%rax,2)
14001729a:	44 0f 45 d3          	cmovne %ebx,%r10d
14001729e:	45 85 db             	test   %r11d,%r11d
1400172a1:	0f 84 1f 01 00 00    	je     0x1400173c6
1400172a7:	44 3b d5             	cmp    %ebp,%r10d
1400172aa:	0f 8d 27 01 00 00    	jge    0x1400173d7
1400172b0:	49 63 c2             	movslq %r10d,%rax
1400172b3:	41 ff c2             	inc    %r10d
1400172b6:	66 c7 04 46 45 00    	movw   $0x45,(%rsi,%rax,2)
1400172bc:	45 85 db             	test   %r11d,%r11d
1400172bf:	79 17                	jns    0x1400172d8
1400172c1:	44 3b d5             	cmp    %ebp,%r10d
1400172c4:	0f 8d 0d 01 00 00    	jge    0x1400173d7
1400172ca:	49 63 c2             	movslq %r10d,%rax
1400172cd:	45 03 d7             	add    %r15d,%r10d
1400172d0:	41 f7 db             	neg    %r11d
1400172d3:	66 44 89 24 46       	mov    %r12w,(%rsi,%rax,2)
1400172d8:	41 83 fb 64          	cmp    $0x64,%r11d
1400172dc:	0f 8c 85 00 00 00    	jl     0x140017367
1400172e2:	41 8d 42 02          	lea    0x2(%r10),%eax
1400172e6:	3b c5                	cmp    %ebp,%eax
1400172e8:	0f 8d e9 00 00 00    	jge    0x1400173d7
1400172ee:	49 63 ca             	movslq %r10d,%rcx
1400172f1:	b8 1f 85 eb 51       	mov    $0x51eb851f,%eax
1400172f6:	41 f7 eb             	imul   %r11d
1400172f9:	45 03 d7             	add    %r15d,%r10d
1400172fc:	c1 fa 05             	sar    $0x5,%edx
1400172ff:	8b c2                	mov    %edx,%eax
140017301:	4d 63 c2             	movslq %r10d,%r8
140017304:	c1 e8 1f             	shr    $0x1f,%eax
140017307:	45 03 d7             	add    %r15d,%r10d
14001730a:	03 d0                	add    %eax,%edx
14001730c:	b8 67 66 66 66       	mov    $0x66666667,%eax
140017311:	66 41 03 d6          	add    %r14w,%dx
140017315:	66 89 14 4e          	mov    %dx,(%rsi,%rcx,2)
140017319:	41 f7 eb             	imul   %r11d
14001731c:	b8 67 66 66 66       	mov    $0x66666667,%eax
140017321:	44 8b ca             	mov    %edx,%r9d
140017324:	41 c1 f9 02          	sar    $0x2,%r9d
140017328:	41 8b c9             	mov    %r9d,%ecx
14001732b:	c1 e9 1f             	shr    $0x1f,%ecx
14001732e:	44 03 c9             	add    %ecx,%r9d
140017331:	41 f7 e9             	imul   %r9d
140017334:	41 8b c9             	mov    %r9d,%ecx
140017337:	c1 fa 02             	sar    $0x2,%edx
14001733a:	8b c2                	mov    %edx,%eax
14001733c:	c1 e8 1f             	shr    $0x1f,%eax
14001733f:	03 d0                	add    %eax,%edx
140017341:	8d 04 92             	lea    (%rdx,%rdx,4),%eax
140017344:	03 c0                	add    %eax,%eax
140017346:	2b c8                	sub    %eax,%ecx
140017348:	41 0f b7 c1          	movzwl %r9w,%eax
14001734c:	66 41 c1 e1 02       	shl    $0x2,%r9w
140017351:	66 41 03 ce          	add    %r14w,%cx
140017355:	66 41 03 c1          	add    %r9w,%ax
140017359:	66 42 89 0c 46       	mov    %cx,(%rsi,%r8,2)
14001735e:	66 03 c0             	add    %ax,%ax
140017361:	66 44 2b d8          	sub    %ax,%r11w
140017365:	eb 50                	jmp    0x1400173b7
140017367:	41 83 fb 0a          	cmp    $0xa,%r11d
14001736b:	7c 45                	jl     0x1400173b2
14001736d:	45 8d 42 01          	lea    0x1(%r10),%r8d
140017371:	44 3b c5             	cmp    %ebp,%r8d
140017374:	7d 61                	jge    0x1400173d7
140017376:	49 63 ca             	movslq %r10d,%rcx
140017379:	b8 67 66 66 66       	mov    $0x66666667,%eax
14001737e:	41 f7 eb             	imul   %r11d
140017381:	4d 63 d0             	movslq %r8d,%r10
140017384:	c1 fa 02             	sar    $0x2,%edx
140017387:	8b c2                	mov    %edx,%eax
140017389:	c1 e8 1f             	shr    $0x1f,%eax
14001738c:	03 d0                	add    %eax,%edx
14001738e:	41 8d 04 16          	lea    (%r14,%rdx,1),%eax
140017392:	66 89 04 4e          	mov    %ax,(%rsi,%rcx,2)
140017396:	0f b7 c2             	movzwl %dx,%eax
140017399:	66 c1 e2 02          	shl    $0x2,%dx
14001739d:	66 03 c2             	add    %dx,%ax
1400173a0:	66 03 c0             	add    %ax,%ax
1400173a3:	66 44 2b d8          	sub    %ax,%r11w
1400173a7:	66 45 03 de          	add    %r14w,%r11w
1400173ab:	66 46 89 1c 56       	mov    %r11w,(%rsi,%r10,2)
1400173b0:	eb 11                	jmp    0x1400173c3
1400173b2:	44 3b d5             	cmp    %ebp,%r10d
1400173b5:	7d 20                	jge    0x1400173d7
1400173b7:	49 63 ca             	movslq %r10d,%rcx
1400173ba:	66 45 03 de          	add    %r14w,%r11w
1400173be:	66 44 89 1c 4e       	mov    %r11w,(%rsi,%rcx,2)
1400173c3:	45 03 d7             	add    %r15d,%r10d
1400173c6:	44 3b d5             	cmp    %ebp,%r10d
1400173c9:	7d 0c                	jge    0x1400173d7
1400173cb:	49 63 ca             	movslq %r10d,%rcx
1400173ce:	41 8b c2             	mov    %r10d,%eax
1400173d1:	66 89 3c 4e          	mov    %di,(%rsi,%rcx,2)
1400173d5:	eb 05                	jmp    0x1400173dc
1400173d7:	66 89 3e             	mov    %di,(%rsi)
1400173da:	33 c0                	xor    %eax,%eax
1400173dc:	48 8b 5c 24 60       	mov    0x60(%rsp),%rbx
1400173e1:	48 8b 6c 24 68       	mov    0x68(%rsp),%rbp
1400173e6:	48 8b 74 24 70       	mov    0x70(%rsp),%rsi
1400173eb:	0f 28 74 24 20       	movaps 0x20(%rsp),%xmm6
1400173f0:	48 83 c4 30          	add    $0x30,%rsp
1400173f4:	41 5f                	pop    %r15
1400173f6:	41 5e                	pop    %r14
1400173f8:	41 5d                	pop    %r13
1400173fa:	41 5c                	pop    %r12
1400173fc:	5f                   	pop    %rdi
1400173fd:	c3                   	ret
1400173fe:	90                   	nop
1400173ff:	90                   	nop
140017400:	48 8d 05 a9 1f 0c 00 	lea    0xc1fa9(%rip),%rax        # 0x1400d93b0
140017407:	c3                   	ret
140017408:	48 89 5c 24 18       	mov    %rbx,0x18(%rsp)
14001740d:	56                   	push   %rsi
14001740e:	57                   	push   %rdi
14001740f:	41 56                	push   %r14
140017411:	48 83 ec 70          	sub    $0x70,%rsp
140017415:	48 8b 05 a4 b2 0a 00 	mov    0xab2a4(%rip),%rax        # 0x1400c26c0
14001741c:	48 33 c4             	xor    %rsp,%rax
14001741f:	48 89 44 24 60       	mov    %rax,0x60(%rsp)
140017424:	48 8b fa             	mov    %rdx,%rdi
140017427:	48 8b d9             	mov    %rcx,%rbx
14001742a:	48 89 4c 24 30       	mov    %rcx,0x30(%rsp)
14001742f:	45 33 f6             	xor    %r14d,%r14d
140017432:	4c 39 72 08          	cmp    %r14,0x8(%rdx)
140017436:	75 2b                	jne    0x140017463