140309fec:	57                   	push   %rdi
140309fed:	41 54                	push   %r12
140309fef:	41 55                	push   %r13
140309ff1:	41 56                	push   %r14
140309ff3:	41 57                	push   %r15
140309ff5:	48 83 ec 20          	sub    $0x20,%rsp
140309ff9:	4c 8b ea             	mov    %rdx,%r13
140309ffc:	4c 8b f1             	mov    %rcx,%r14
140309fff:	4c 8b 41 08          	mov    0x8(%rcx),%r8
14030a003:	4c 2b 01             	sub    (%rcx),%r8
14030a006:	48 b8 67 66 66 66 66 	movabs $0x6666666666666667,%rax
14030a00d:	66 66 66
14030a010:	49 f7 e8             	imul   %r8
14030a013:	4c 8b fa             	mov    %rdx,%r15
14030a016:	49 c1 ff 06          	sar    $0x6,%r15
14030a01a:	49 8b c7             	mov    %r15,%rax
14030a01d:	48 c1 e8 3f          	shr    $0x3f,%rax
14030a021:	4c 03 f8             	add    %rax,%r15
14030a024:	49 8b d5             	mov    %r13,%rdx
14030a027:	e8 34 f5 ff ff       	call   0x140309560
14030a02c:	4c 8b e0             	mov    %rax,%r12
14030a02f:	48 89 44 24 70       	mov    %rax,0x70(%rsp)
14030a034:	49 8b 76 08          	mov    0x8(%r14),%rsi
14030a038:	48 8b f8             	mov    %rax,%rdi
14030a03b:	49 8b 1e             	mov    (%r14),%rbx
14030a03e:	48 3b de             	cmp    %rsi,%rbx
14030a041:	74 1e                	je     0x14030a061
14030a043:	48 8b d3             	mov    %rbx,%rdx
14030a046:	48 8b cf             	mov    %rdi,%rcx
14030a049:	e8 12 16 00 00       	call   0x14030b660
14030a04e:	48 81 c7 a0 00 00 00 	add    $0xa0,%rdi
14030a055:	48 81 c3 a0 00 00 00 	add    $0xa0,%rbx
14030a05c:	48 3b de             	cmp    %rsi,%rbx
14030a05f:	75 e2                	jne    0x14030a043
14030a061:	4d 8b 4d 00          	mov    0x0(%r13),%r9
14030a065:	4d 8b c7             	mov    %r15,%r8
14030a068:	49 8b d4             	mov    %r12,%rdx
14030a06b:	49 8b ce             	mov    %r14,%rcx
14030a06e:	48 83 c4 20          	add    $0x20,%rsp
14030a072:	41 5f                	pop    %r15
14030a074:	41 5e                	pop    %r14
14030a076:	41 5d                	pop    %r13
14030a078:	41 5c                	pop    %r12
14030a07a:	5f                   	pop    %rdi
14030a07b:	5e                   	pop    %rsi
14030a07c:	5b                   	pop    %rbx
14030a07d:	e9 7e 80 00 00       	jmp    0x140312100
14030a082:	cc                   	int3
14030a083:	cc                   	int3
14030a084:	cc                   	int3
14030a085:	cc                   	int3
14030a086:	cc                   	int3
14030a087:	cc                   	int3
14030a088:	cc                   	int3
14030a089:	cc                   	int3
14030a08a:	cc                   	int3
14030a08b:	cc                   	int3
14030a08c:	cc                   	int3
14030a08d:	cc                   	int3
14030a08e:	cc                   	int3
14030a08f:	cc                   	int3
14030a090:	48 89 5c 24 08       	mov    %rbx,0x8(%rsp)
14030a095:	57                   	push   %rdi
14030a096:	48 83 ec 20          	sub    $0x20,%rsp
14030a09a:	49 8b c0             	mov    %r8,%rax
14030a09d:	4c 3b ca             	cmp    %rdx,%r9
14030a0a0:	4c 8b c2             	mov    %rdx,%r8
14030a0a3:	48 8b fa             	mov    %rdx,%rdi
14030a0a6:	4d 0f 42 c1          	cmovb  %r9,%r8
14030a0aa:	48 8b d0             	mov    %rax,%rdx
14030a0ad:	49 8b d9             	mov    %r9,%rbx
14030a0b0:	e8 6d 29 ff ff       	call   0x1402fca22
14030a0b5:	85 c0                	test   %eax,%eax
14030a0b7:	75 1d                	jne    0x14030a0d6
14030a0b9:	48 3b fb             	cmp    %rbx,%rdi
14030a0bc:	73 10                	jae    0x14030a0ce
14030a0be:	b8 ff ff ff ff       	mov    $0xffffffff,%eax
14030a0c3:	48 8b 5c 24 30       	mov    0x30(%rsp),%rbx
14030a0c8:	48 83 c4 20          	add    $0x20,%rsp
14030a0cc:	5f                   	pop    %rdi
14030a0cd:	c3                   	ret
14030a0ce:	33 c0                	xor    %eax,%eax
14030a0d0:	48 3b fb             	cmp    %rbx,%rdi
14030a0d3:	0f 97 c0             	seta   %al
14030a0d6:	48 8b 5c 24 30       	mov    0x30(%rsp),%rbx
14030a0db:	48 83 c4 20          	add    $0x20,%rsp
14030a0df:	5f                   	pop    %rdi
14030a0e0:	c3                   	ret
14030a0e1:	cc                   	int3
14030a0e2:	cc                   	int3
14030a0e3:	cc                   	int3
14030a0e4:	cc                   	int3
14030a0e5:	cc                   	int3
14030a0e6:	cc                   	int3
14030a0e7:	cc                   	int3
14030a0e8:	cc                   	int3
14030a0e9:	cc                   	int3
14030a0ea:	cc                   	int3
14030a0eb:	cc                   	int3
14030a0ec:	cc                   	int3
14030a0ed:	cc                   	int3
14030a0ee:	cc                   	int3
14030a0ef:	cc                   	int3
14030a0f0:	48 89 5c 24 10       	mov    %rbx,0x10(%rsp)
14030a0f5:	48 89 6c 24 18       	mov    %rbp,0x18(%rsp)
14030a0fa:	48 89 74 24 20       	mov    %rsi,0x20(%rsp)
14030a0ff:	48 89 4c 24 08       	mov    %rcx,0x8(%rsp)
14030a104:	57                   	push   %rdi
14030a105:	41 54                	push   %r12
14030a107:	41 55                	push   %r13
14030a109:	41 56                	push   %r14
14030a10b:	41 57                	push   %r15
14030a10d:	48 83 ec 40          	sub    $0x40,%rsp
14030a111:	49 8b d8             	mov    %r8,%rbx
14030a114:	4c 8b fa             	mov    %rdx,%r15
14030a117:	48 8b e9             	mov    %rcx,%rbp
14030a11a:	4d 8b 48 10          	mov    0x10(%r8),%r9
14030a11e:	49 83 78 18 0f       	cmpq   $0xf,0x18(%r8)
14030a123:	76 03                	jbe    0x14030a128
14030a125:	4d 8b 00             	mov    (%r8),%r8
14030a128:	48 bf 25 23 22 84 e4 	movabs $0xcbf29ce484222325,%rdi
14030a12f:	9c f2 cb
14030a132:	45 33 ed             	xor    %r13d,%r13d
14030a135:	41 8b d5             	mov    %r13d,%edx
14030a138:	4d 85 c9             	test   %r9,%r9
14030a13b:	74 27                	je     0x14030a164
14030a13d:	48 b9 b3 01 00 00 00 	movabs $0x100000001b3,%rcx
14030a144:	01 00 00
14030a147:	66 0f 1f 84 00 00 00 	nopw   0x0(%rax,%rax,1)
14030a14e:	00 00
14030a150:	41 0f b6 04 10       	movzbl (%r8,%rdx,1),%eax
14030a155:	48 33 f8             	xor    %rax,%rdi
14030a158:	48 0f af f9          	imul   %rcx,%rdi
14030a15c:	48 ff c2             	inc    %rdx
14030a15f:	49 3b d1             	cmp    %r9,%rdx
14030a162:	72 ec                	jb     0x14030a150
14030a164:	4c 8b cf             	mov    %rdi,%r9
14030a167:	4c 8b c3             	mov    %rbx,%r8
14030a16a:	48 8d 54 24 20       	lea    0x20(%rsp),%rdx
14030a16f:	48 8b cd             	mov    %rbp,%rcx
14030a172:	e8 19 47 d8 ff       	call   0x14008e890
14030a177:	48 8b 44 24 28       	mov    0x28(%rsp),%rax
14030a17c:	48 85 c0             	test   %rax,%rax
14030a17f:	74 0c                	je     0x14030a18d
14030a181:	49 89 07             	mov    %rax,(%r15)
14030a184:	45 88 6f 08          	mov    %r13b,0x8(%r15)
14030a188:	e9 49 02 00 00       	jmp    0x14030a3d6
14030a18d:	48 b8 8e e3 38 8e e3 	movabs $0x38e38e38e38e38e,%rax
14030a194:	38 8e 03
14030a197:	48 39 45 10          	cmp    %rax,0x10(%rbp)
14030a19b:	0f 84 56 02 00 00    	je     0x14030a3f7
14030a1a1:	4c 8d 65 08          	lea    0x8(%rbp),%r12
14030a1a5:	4c 89 64 24 30       	mov    %r12,0x30(%rsp)
14030a1aa:	4c 89 6c 24 38       	mov    %r13,0x38(%rsp)
14030a1af:	b9 48 00 00 00       	mov    $0x48,%ecx
14030a1b4:	e8 8f 00 ff ff       	call   0x1402fa248
14030a1b9:	48 8b f0             	mov    %rax,%rsi
14030a1bc:	48 89 44 24 38       	mov    %rax,0x38(%rsp)
14030a1c1:	48 8b d3             	mov    %rbx,%rdx
14030a1c4:	48 8d 48 10          	lea    0x10(%rax),%rcx
14030a1c8:	e8 03 bc d7 ff       	call   0x140085dd0
14030a1cd:	4c 89 6e 30          	mov    %r13,0x30(%rsi)
14030a1d1:	4c 89 6e 38          	mov    %r13,0x38(%rsi)
14030a1d5:	4c 89 6e 40          	mov    %r13,0x40(%rsi)
14030a1d9:	48 8b 4d 10          	mov    0x10(%rbp),%rcx
14030a1dd:	f3 0f 10 5d 00       	movss  0x0(%rbp),%xmm3
14030a1e2:	48 8b 55 38          	mov    0x38(%rbp),%rdx
14030a1e6:	48 83 c1 01          	add    $0x1,%rcx
14030a1ea:	0f 57 c9             	xorps  %xmm1,%xmm1
14030a1ed:	78 07                	js     0x14030a1f6
14030a1ef:	f3 48 0f 2a c9       	cvtsi2ss %rcx,%xmm1
14030a1f4:	eb 15                	jmp    0x14030a20b
14030a1f6:	48 8b c1             	mov    %rcx,%rax
14030a1f9:	48 d1 e8             	shr    $1,%rax
14030a1fc:	83 e1 01             	and    $0x1,%ecx
14030a1ff:	48 0b c1             	or     %rcx,%rax
14030a202:	f3 48 0f 2a c8       	cvtsi2ss %rax,%xmm1
14030a207:	f3 0f 58 c9          	addss  %xmm1,%xmm1
14030a20b:	0f 57 d2             	xorps  %xmm2,%xmm2
14030a20e:	48 85 d2             	test   %rdx,%rdx
14030a211:	78 07                	js     0x14030a21a
14030a213:	f3 48 0f 2a d2       	cvtsi2ss %rdx,%xmm2
14030a218:	eb 18                	jmp    0x14030a232
14030a21a:	48 8b ca             	mov    %rdx,%rcx
14030a21d:	48 d1 e9             	shr    $1,%rcx
14030a220:	48 8b c2             	mov    %rdx,%rax
14030a223:	83 e0 01             	and    $0x1,%eax
14030a226:	48 0b c8             	or     %rax,%rcx
14030a229:	f3 48 0f 2a d1       	cvtsi2ss %rcx,%xmm2
14030a22e:	f3 0f 58 d2          	addss  %xmm2,%xmm2
14030a232:	0f 28 c1             	movaps %xmm1,%xmm0
14030a235:	f3 0f 5e c2          	divss  %xmm2,%xmm0
14030a239:	0f 2f d8             	comiss %xmm0,%xmm3
14030a23c:	0f 83 3c 01 00 00    	jae    0x14030a37e
14030a242:	f3 0f 5e cb          	divss  %xmm3,%xmm1
14030a246:	f3 0f 2c c9          	cvttss2si %xmm1,%ecx
14030a24a:	81 f9 00 00 00 80    	cmp    $0x80000000,%ecx
14030a250:	74 21                	je     0x14030a273
14030a252:	66 0f 6e c1          	movd   %ecx,%xmm0
14030a256:	0f 5b c0             	cvtdq2ps %xmm0,%xmm0
14030a259:	0f 2e c1             	ucomiss %xmm1,%xmm0
14030a25c:	74 15                	je     0x14030a273
14030a25e:	0f 14 c9             	unpcklps %xmm1,%xmm1
14030a261:	0f 50 c1             	movmskps %xmm1,%eax
14030a264:	83 e0 01             	and    $0x1,%eax
14030a267:	83 f0 01             	xor    $0x1,%eax
14030a26a:	03 c8                	add    %eax,%ecx
14030a26c:	66 0f 6e c9          	movd   %ecx,%xmm1
14030a270:	0f 5b c9             	cvtdq2ps %xmm1,%xmm1
14030a273:	33 c9                	xor    %ecx,%ecx
14030a275:	f3 0f 10 05 57 42 02 	movss  0x24257(%rip),%xmm0        # 0x14032e4d4
14030a27c:	00
14030a27d:	0f 2f c8             	comiss %xmm0,%xmm1
14030a280:	72 16                	jb     0x14030a298
14030a282:	f3 0f 5c c8          	subss  %xmm0,%xmm1
14030a286:	0f 2f c8             	comiss %xmm0,%xmm1
14030a289:	73 0d                	jae    0x14030a298
14030a28b:	48 b8 00 00 00 00 00 	movabs $0x8000000000000000,%rax
14030a292:	00 00 80
14030a295:	48 8b c8             	mov    %rax,%rcx
14030a298:	f3 48 0f 2c c1       	cvttss2si %xmm1,%rax
14030a29d:	48 03 c1             	add    %rcx,%rax
14030a2a0:	b9 08 00 00 00       	mov    $0x8,%ecx
14030a2a5:	48 3b c1             	cmp    %rcx,%rax
14030a2a8:	48 0f 47 c8          	cmova  %rax,%rcx
14030a2ac:	48 3b d1             	cmp    %rcx,%rdx
14030a2af:	73 19                	jae    0x14030a2ca
14030a2b1:	48 81 fa 00 02 00 00 	cmp    $0x200,%rdx
14030a2b8:	73 0d                	jae    0x14030a2c7
14030a2ba:	48 8d 14 d5 00 00 00 	lea    0x0(,%rdx,8),%rdx
14030a2c1:	00
14030a2c2:	48 3b d1             	cmp    %rcx,%rdx
14030a2c5:	73 03                	jae    0x14030a2ca
14030a2c7:	48 8b d1             	mov    %rcx,%rdx
14030a2ca:	48 8b cd             	mov    %rbp,%rcx
14030a2cd:	e8 7e 60 db ff       	call   0x1400c0350
14030a2d2:	48 8b 45 30          	mov    0x30(%rbp),%rax
14030a2d6:	48 23 c7             	and    %rdi,%rax
14030a2d9:	48 03 c0             	add    %rax,%rax
14030a2dc:	48 8b 55 18          	mov    0x18(%rbp),%rdx
14030a2e0:	48 8b 5c c2 08       	mov    0x8(%rdx,%rax,8),%rbx
14030a2e5:	49 8b 0c 24          	mov    (%r12),%rcx
14030a2e9:	48 3b d9             	cmp    %rcx,%rbx
14030a2ec:	75 0c                	jne    0x14030a2fa
14030a2ee:	48 89 4c 24 20       	mov    %rcx,0x20(%rsp)
14030a2f3:	4c 89 6c 24 28       	mov    %r13,0x28(%rsp)
14030a2f8:	eb 79                	jmp    0x14030a373
14030a2fa:	4c 8b 24 c2          	mov    (%rdx,%rax,8),%r12
14030a2fe:	4c 8b 6e 28          	mov    0x28(%rsi),%r13
14030a302:	48 8b 6e 20          	mov    0x20(%rsi),%rbp
14030a306:	66 66 0f 1f 84 00 00 	data16 nopw 0x0(%rax,%rax,1)
14030a30d:	00 00 00
14030a310:	48 8d 53 10          	lea    0x10(%rbx),%rdx
14030a314:	48 8b 42 10          	mov    0x10(%rdx),%rax
14030a318:	48 83 7a 18 0f       	cmpq   $0xf,0x18(%rdx)
14030a31d:	76 03                	jbe    0x14030a322
14030a31f:	48 8b 12             	mov    (%rdx),%rdx
14030a322:	48 8d 4e 10          	lea    0x10(%rsi),%rcx
14030a326:	49 83 fd 0f          	cmp    $0xf,%r13
14030a32a:	76 04                	jbe    0x14030a330
14030a32c:	48 8b 4e 10          	mov    0x10(%rsi),%rcx
14030a330:	48 3b e8             	cmp    %rax,%rbp
14030a333:	75 0c                	jne    0x14030a341
14030a335:	4c 8b c5             	mov    %rbp,%r8
14030a338:	e8 e5 26 ff ff       	call   0x1402fca22
14030a33d:	85 c0                	test   %eax,%eax
14030a33f:	74 0b                	je     0x14030a34c
14030a341:	49 3b dc             	cmp    %r12,%rbx
14030a344:	74 15                	je     0x14030a35b
14030a346:	48 8b 5b 08          	mov    0x8(%rbx),%rbx
14030a34a:	eb c4                	jmp    0x14030a310
14030a34c:	48 8b 03             	mov    (%rbx),%rax
14030a34f:	48 89 44 24 20       	mov    %rax,0x20(%rsp)
14030a354:	48 89 5c 24 28       	mov    %rbx,0x28(%rsp)
14030a359:	eb 0e                	jmp    0x14030a369
14030a35b:	48 89 5c 24 20       	mov    %rbx,0x20(%rsp)
14030a360:	48 c7 44 24 28 00 00 	movq   $0x0,0x28(%rsp)
14030a367:	00 00
14030a369:	4c 8b 64 24 30       	mov    0x30(%rsp),%r12
14030a36e:	48 8b 6c 24 70       	mov    0x70(%rsp),%rbp
14030a373:	0f 28 44 24 20       	movaps 0x20(%rsp),%xmm0
14030a378:	66 0f 7f 44 24 20    	movdqa %xmm0,0x20(%rsp)
14030a37e:	48 8b 54 24 20       	mov    0x20(%rsp),%rdx
14030a383:	4c 8b 42 08          	mov    0x8(%rdx),%r8
14030a387:	48 ff 45 10          	incq   0x10(%rbp)
14030a38b:	48 89 16             	mov    %rdx,(%rsi)
14030a38e:	4c 89 46 08          	mov    %r8,0x8(%rsi)
14030a392:	49 89 30             	mov    %rsi,(%r8)
14030a395:	48 89 72 08          	mov    %rsi,0x8(%rdx)
14030a399:	48 8b 4d 18          	mov    0x18(%rbp),%rcx
14030a39d:	48 8b 45 30          	mov    0x30(%rbp),%rax
14030a3a1:	48 23 c7             	and    %rdi,%rax
14030a3a4:	48 03 c0             	add    %rax,%rax
14030a3a7:	4c 8b 0c c1          	mov    (%rcx,%rax,8),%r9
14030a3ab:	4d 3b 0c 24          	cmp    (%r12),%r9
14030a3af:	75 06                	jne    0x14030a3b7
14030a3b1:	48 89 34 c1          	mov    %rsi,(%rcx,%rax,8)
14030a3b5:	eb 12                	jmp    0x14030a3c9
14030a3b7:	4c 3b ca             	cmp    %rdx,%r9
14030a3ba:	75 06                	jne    0x14030a3c2
14030a3bc:	48 89 34 c1          	mov    %rsi,(%rcx,%rax,8)
14030a3c0:	eb 0c                	jmp    0x14030a3ce
14030a3c2:	4c 39 44 c1 08       	cmp    %r8,0x8(%rcx,%rax,8)
14030a3c7:	75 05                	jne    0x14030a3ce
14030a3c9:	48 89 74 c1 08       	mov    %rsi,0x8(%rcx,%rax,8)
14030a3ce:	49 89 37             	mov    %rsi,(%r15)
14030a3d1:	41 c6 47 08 01       	movb   $0x1,0x8(%r15)
14030a3d6:	49 8b c7             	mov    %r15,%rax
14030a3d9:	4c 8d 5c 24 40       	lea    0x40(%rsp),%r11
14030a3de:	49 8b 5b 38          	mov    0x38(%r11),%rbx
14030a3e2:	49 8b 6b 40          	mov    0x40(%r11),%rbp
14030a3e6:	49 8b 73 48          	mov    0x48(%r11),%rsi
14030a3ea:	49 8b e3             	mov    %r11,%rsp
14030a3ed:	41 5f                	pop    %r15
14030a3ef:	41 5e                	pop    %r14
14030a3f1:	41 5d                	pop    %r13
14030a3f3:	41 5c                	pop    %r12
14030a3f5:	5f                   	pop    %rdi
14030a3f6:	c3                   	ret
14030a3f7:	48 8d 0d 22 3f 02 00 	lea    0x23f22(%rip),%rcx        # 0x14032e320
14030a3fe:	e8 ad 21 ff ff       	call   0x1402fc5b0
14030a403:	cc                   	int3
14030a404:	cc                   	int3
14030a405:	cc                   	int3
14030a406:	cc                   	int3
14030a407:	cc                   	int3
14030a408:	cc                   	int3
14030a409:	cc                   	int3
14030a40a:	cc                   	int3
14030a40b:	cc                   	int3
14030a40c:	cc                   	int3
14030a40d:	cc                   	int3
14030a40e:	cc                   	int3
14030a40f:	cc                   	int3
14030a410:	48 89 5c 24 10       	mov    %rbx,0x10(%rsp)
14030a415:	48 89 6c 24 18       	mov    %rbp,0x18(%rsp)
14030a41a:	48 89 74 24 20       	mov    %rsi,0x20(%rsp)
14030a41f:	57                   	push   %rdi
14030a420:	41 54                	push   %r12
14030a422:	41 55                	push   %r13
14030a424:	41 56                	push   %r14
14030a426:	41 57                	push   %r15
14030a428:	48 83 ec 40          	sub    $0x40,%rsp
14030a42c:	49 8b d8             	mov    %r8,%rbx
14030a42f:	4c 8b fa             	mov    %rdx,%r15
14030a432:	48 8b e9             	mov    %rcx,%rbp
14030a435:	4d 8b 48 10          	mov    0x10(%r8),%r9
14030a439:	49 83 78 18 0f       	cmpq   $0xf,0x18(%r8)
14030a43e:	76 03                	jbe    0x14030a443
14030a440:	4d 8b 00             	mov    (%r8),%r8