140017eb7:	41 56                	push   %r14
140017eb9:	48 83 ec 40          	sub    $0x40,%rsp
140017ebd:	49 8b f0             	mov    %r8,%rsi
140017ec0:	48 8b da             	mov    %rdx,%rbx
140017ec3:	48 8b f9             	mov    %rcx,%rdi
140017ec6:	49 8b c8             	mov    %r8,%rcx
140017ec9:	49 83 78 18 07       	cmpq   $0x7,0x18(%r8)
140017ece:	76 03                	jbe    0x140017ed3
140017ed0:	49 8b 08             	mov    (%r8),%rcx
140017ed3:	49 8b 50 10          	mov    0x10(%r8),%rdx
140017ed7:	e8 54 cb ff ff       	call   0x140014a30
140017edc:	48 8b e8             	mov    %rax,%rbp
140017edf:	4c 8b c8             	mov    %rax,%r9
140017ee2:	4c 8b c6             	mov    %rsi,%r8
140017ee5:	48 8d 54 24 30       	lea    0x30(%rsp),%rdx
140017eea:	48 8b cf             	mov    %rdi,%rcx
140017eed:	e8 0a ff ff ff       	call   0x140017dfc
140017ef2:	48 8b 4c 24 38       	mov    0x38(%rsp),%rcx
140017ef7:	48 85 c9             	test   %rcx,%rcx
140017efa:	74 0c                	je     0x140017f08
140017efc:	48 89 0b             	mov    %rcx,(%rbx)
140017eff:	c6 43 08 00          	movb   $0x0,0x8(%rbx)
140017f03:	e9 3e 01 00 00       	jmp    0x140018046
140017f08:	48 b8 92 24 49 92 24 	movabs $0x492492492492492,%rax
140017f0f:	49 92 04
140017f12:	48 39 47 10          	cmp    %rax,0x10(%rdi)
140017f16:	0f 84 48 01 00 00    	je     0x140018064
140017f1c:	4c 8b c6             	mov    %rsi,%r8
140017f1f:	48 8d 57 08          	lea    0x8(%rdi),%rdx
140017f23:	48 8d 4c 24 20       	lea    0x20(%rsp),%rcx
140017f28:	e8 b3 f5 ff ff       	call   0x1400174e0
140017f2d:	48 8b 57 10          	mov    0x10(%rdi),%rdx
140017f31:	48 83 c2 01          	add    $0x1,%rdx
140017f35:	0f 57 c0             	xorps  %xmm0,%xmm0
140017f38:	78 07                	js     0x140017f41
140017f3a:	f3 48 0f 2a c2       	cvtsi2ss %rdx,%xmm0
140017f3f:	eb 18                	jmp    0x140017f59
140017f41:	48 8b ca             	mov    %rdx,%rcx
140017f44:	48 d1 e9             	shr    $1,%rcx
140017f47:	48 8b c2             	mov    %rdx,%rax
140017f4a:	83 e0 01             	and    $0x1,%eax
140017f4d:	48 0b c8             	or     %rax,%rcx
140017f50:	f3 48 0f 2a c1       	cvtsi2ss %rcx,%xmm0
140017f55:	f3 0f 58 c0          	addss  %xmm0,%xmm0
140017f59:	48 8b 4f 38          	mov    0x38(%rdi),%rcx
140017f5d:	0f 57 c9             	xorps  %xmm1,%xmm1
140017f60:	48 85 c9             	test   %rcx,%rcx
140017f63:	78 07                	js     0x140017f6c
140017f65:	f3 48 0f 2a c9       	cvtsi2ss %rcx,%xmm1
140017f6a:	eb 15                	jmp    0x140017f81
140017f6c:	48 8b c1             	mov    %rcx,%rax
140017f6f:	48 d1 e8             	shr    $1,%rax
140017f72:	83 e1 01             	and    $0x1,%ecx
140017f75:	48 0b c1             	or     %rcx,%rax
140017f78:	f3 48 0f 2a c8       	cvtsi2ss %rax,%xmm1
140017f7d:	f3 0f 58 c9          	addss  %xmm1,%xmm1
140017f81:	f3 0f 5e c1          	divss  %xmm1,%xmm0
140017f85:	0f 2f 07             	comiss (%rdi),%xmm0
140017f88:	76 35                	jbe    0x140017fbf
140017f8a:	48 8b cf             	mov    %rdi,%rcx
140017f8d:	e8 22 ba ff ff       	call   0x1400139b4
140017f92:	48 8b d0             	mov    %rax,%rdx
140017f95:	48 8b cf             	mov    %rdi,%rcx
140017f98:	e8 73 0c 00 00       	call   0x140018c10
140017f9d:	4c 8b 44 24 28       	mov    0x28(%rsp),%r8
140017fa2:	49 83 c0 10          	add    $0x10,%r8
140017fa6:	4c 8b cd             	mov    %rbp,%r9
140017fa9:	48 8d 54 24 30       	lea    0x30(%rsp),%rdx
140017fae:	48 8b cf             	mov    %rdi,%rcx
140017fb1:	e8 46 fe ff ff       	call   0x140017dfc
140017fb6:	0f 10 00             	movups (%rax),%xmm0
140017fb9:	f3 0f 7f 44 24 30    	movdqu %xmm0,0x30(%rsp)
140017fbf:	48 8b 4c 24 28       	mov    0x28(%rsp),%rcx
140017fc4:	48 83 64 24 28 00    	andq   $0x0,0x28(%rsp)
140017fca:	4c 8b 44 24 30       	mov    0x30(%rsp),%r8
140017fcf:	4d 8b 48 08          	mov    0x8(%r8),%r9
140017fd3:	48 ff 47 10          	incq   0x10(%rdi)
140017fd7:	4c 89 01             	mov    %r8,(%rcx)
140017fda:	4c 89 49 08          	mov    %r9,0x8(%rcx)
140017fde:	49 89 09             	mov    %rcx,(%r9)
140017fe1:	49 89 48 08          	mov    %rcx,0x8(%r8)
140017fe5:	48 8b 57 18          	mov    0x18(%rdi),%rdx
140017fe9:	48 8b 47 30          	mov    0x30(%rdi),%rax
140017fed:	48 23 c5             	and    %rbp,%rax
140017ff0:	48 03 c0             	add    %rax,%rax
140017ff3:	4c 8b 14 c2          	mov    (%rdx,%rax,8),%r10
140017ff7:	4c 3b 57 08          	cmp    0x8(%rdi),%r10
140017ffb:	75 06                	jne    0x140018003
140017ffd:	48 89 0c c2          	mov    %rcx,(%rdx,%rax,8)
140018001:	eb 12                	jmp    0x140018015
140018003:	4d 3b d0             	cmp    %r8,%r10
140018006:	75 06                	jne    0x14001800e
140018008:	48 89 0c c2          	mov    %rcx,(%rdx,%rax,8)
14001800c:	eb 0c                	jmp    0x14001801a
14001800e:	4c 39 4c c2 08       	cmp    %r9,0x8(%rdx,%rax,8)
140018013:	75 05                	jne    0x14001801a
140018015:	48 89 4c c2 08       	mov    %rcx,0x8(%rdx,%rax,8)
14001801a:	48 89 0b             	mov    %rcx,(%rbx)
14001801d:	c6 43 08 01          	movb   $0x1,0x8(%rbx)
140018021:	48 8b 4c 24 28       	mov    0x28(%rsp),%rcx
140018026:	48 85 c9             	test   %rcx,%rcx
140018029:	74 1b                	je     0x140018046
14001802b:	48 83 c1 10          	add    $0x10,%rcx
14001802f:	33 d2                	xor    %edx,%edx
140018031:	e8 16 05 00 00       	call   0x14001854c
140018036:	48 8b 4c 24 28       	mov    0x28(%rsp),%rcx
14001803b:	48 85 c9             	test   %rcx,%rcx
14001803e:	74 06                	je     0x140018046
140018040:	ff 15 c2 c4 01 00    	call   *0x1c4c2(%rip)        # 0x140034508
140018046:	48 8b c3             	mov    %rbx,%rax
140018049:	48 8b 5c 24 50       	mov    0x50(%rsp),%rbx
14001804e:	48 8b 6c 24 58       	mov    0x58(%rsp),%rbp
140018053:	48 8b 74 24 60       	mov    0x60(%rsp),%rsi
140018058:	48 8b 7c 24 68       	mov    0x68(%rsp),%rdi
14001805d:	48 83 c4 40          	add    $0x40,%rsp
140018061:	41 5e                	pop    %r14
140018063:	c3                   	ret
140018064:	48 8d 0d 8d 0e 02 00 	lea    0x20e8d(%rip),%rcx        # 0x140038ef8
14001806b:	e8 7d 9a 01 00       	call   0x140031aed
140018070:	cc                   	int3
140018071:	90                   	nop
140018072:	90                   	nop
140018073:	90                   	nop
140018074:	48 89 7c 24 08       	mov    %rdi,0x8(%rsp)
140018079:	4c 8b d2             	mov    %rdx,%r10
14001807c:	33 c0                	xor    %eax,%eax
14001807e:	48 2b d1             	sub    %rcx,%rdx
140018081:	4c 8b c9             	mov    %rcx,%r9
140018084:	48 83 c2 07          	add    $0x7,%rdx
140018088:	48 c1 ea 03          	shr    $0x3,%rdx
14001808c:	49 3b ca             	cmp    %r10,%rcx
14001808f:	48 0f 47 d0          	cmova  %rax,%rdx
140018093:	48 85 d2             	test   %rdx,%rdx
140018096:	74 3f                	je     0x1400180d7
140018098:	48 83 fa 02          	cmp    $0x2,%rdx
14001809c:	72 39                	jb     0x1400180d7
14001809e:	49 8b 00             	mov    (%r8),%rax
1400180a1:	48 83 c1 f8          	add    $0xfffffffffffffff8,%rcx
1400180a5:	48 8d 0c d1          	lea    (%rcx,%rdx,8),%rcx
1400180a9:	4d 3b c8             	cmp    %r8,%r9
1400180ac:	77 05                	ja     0x1400180b3
1400180ae:	49 3b c8             	cmp    %r8,%rcx
1400180b1:	73 24                	jae    0x1400180d7
1400180b3:	48 83 e2 fe          	and    $0xfffffffffffffffe,%rdx
1400180b7:	49 8b f9             	mov    %r9,%rdi
1400180ba:	48 c1 e2 03          	shl    $0x3,%rdx
1400180be:	48 8b ca             	mov    %rdx,%rcx
1400180c1:	48 c1 e9 03          	shr    $0x3,%rcx
1400180c5:	f3 48 ab             	rep stos %rax,%es:(%rdi)
1400180c8:	4c 03 ca             	add    %rdx,%r9
1400180cb:	eb 0a                	jmp    0x1400180d7
1400180cd:	49 8b 00             	mov    (%r8),%rax
1400180d0:	49 89 01             	mov    %rax,(%r9)
1400180d3:	49 83 c1 08          	add    $0x8,%r9
1400180d7:	4d 3b ca             	cmp    %r10,%r9
1400180da:	75 f1                	jne    0x1400180cd
1400180dc:	48 8b 7c 24 08       	mov    0x8(%rsp),%rdi
1400180e1:	c3                   	ret
1400180e2:	90                   	nop
1400180e3:	90                   	nop
1400180e4:	48 89 5c 24 10       	mov    %rbx,0x10(%rsp)
1400180e9:	48 89 4c 24 08       	mov    %rcx,0x8(%rsp)
1400180ee:	56                   	push   %rsi
1400180ef:	57                   	push   %rdi
1400180f0:	41 56                	push   %r14
1400180f2:	48 83 ec 30          	sub    $0x30,%rsp
1400180f6:	4d 8b f0             	mov    %r8,%r14
1400180f9:	48 8b f2             	mov    %rdx,%rsi
1400180fc:	48 8b f9             	mov    %rcx,%rdi
1400180ff:	b9 18 00 00 00       	mov    $0x18,%ecx
140018104:	e8 5f 41 ff ff       	call   0x14000c268
140018109:	48 8b d8             	mov    %rax,%rbx
14001810c:	48 89 44 24 50       	mov    %rax,0x50(%rsp)
140018111:	48 85 c0             	test   %rax,%rax
140018114:	74 35                	je     0x14001814b
140018116:	8b 06                	mov    (%rsi),%eax
140018118:	89 03                	mov    %eax,(%rbx)
14001811a:	48 8d 73 08          	lea    0x8(%rbx),%rsi
14001811e:	48 89 74 24 68       	mov    %rsi,0x68(%rsp)
140018123:	b9 18 00 00 00       	mov    $0x18,%ecx
140018128:	e8 3b 41 ff ff       	call   0x14000c268
14001812d:	48 85 c0             	test   %rax,%rax
140018130:	74 0e                	je     0x140018140
140018132:	48 83 20 00          	andq   $0x0,(%rax)
140018136:	48 83 60 08 00       	andq   $0x0,0x8(%rax)
14001813b:	48 83 60 10 00       	andq   $0x0,0x10(%rax)
140018140:	48 89 06             	mov    %rax,(%rsi)
140018143:	41 8a 06             	mov    (%r14),%al
140018146:	88 43 10             	mov    %al,0x10(%rbx)
140018149:	eb 02                	jmp    0x14001814d
14001814b:	33 db                	xor    %ebx,%ebx
14001814d:	48 89 1f             	mov    %rbx,(%rdi)
140018150:	48 8b c7             	mov    %rdi,%rax
140018153:	48 8b 5c 24 58       	mov    0x58(%rsp),%rbx
140018158:	48 83 c4 30          	add    $0x30,%rsp
14001815c:	41 5e                	pop    %r14
14001815e:	5f                   	pop    %rdi
14001815f:	5e                   	pop    %rsi
140018160:	c3                   	ret
140018161:	90                   	nop
140018162:	90                   	nop
140018163:	90                   	nop
140018164:	48 89 5c 24 10       	mov    %rbx,0x10(%rsp)
140018169:	48 89 74 24 18       	mov    %rsi,0x18(%rsp)
14001816e:	48 89 4c 24 08       	mov    %rcx,0x8(%rsp)
140018173:	57                   	push   %rdi
140018174:	48 83 ec 30          	sub    $0x30,%rsp
140018178:	48 8b fa             	mov    %rdx,%rdi
14001817b:	48 8b f1             	mov    %rcx,%rsi
14001817e:	b9 20 00 00 00       	mov    $0x20,%ecx
140018183:	e8 e0 40 ff ff       	call   0x14000c268
140018188:	48 8b d8             	mov    %rax,%rbx
14001818b:	48 89 44 24 40       	mov    %rax,0x40(%rsp)
140018190:	48 85 c0             	test   %rax,%rax
140018193:	74 2b                	je     0x1400181c0
140018195:	0f 57 c0             	xorps  %xmm0,%xmm0
140018198:	0f 11 00             	movups %xmm0,(%rax)
14001819b:	48 83 60 10 00       	andq   $0x0,0x10(%rax)
1400181a0:	48 83 60 18 00       	andq   $0x0,0x18(%rax)
1400181a5:	4c 8b 47 10          	mov    0x10(%rdi),%r8
1400181a9:	48 83 7f 18 07       	cmpq   $0x7,0x18(%rdi)
1400181ae:	76 03                	jbe    0x1400181b3
1400181b0:	48 8b 3f             	mov    (%rdi),%rdi
1400181b3:	48 8b d7             	mov    %rdi,%rdx
1400181b6:	48 8b c8             	mov    %rax,%rcx
1400181b9:	e8 d2 6a ff ff       	call   0x14000ec90
1400181be:	eb 02                	jmp    0x1400181c2
1400181c0:	33 db                	xor    %ebx,%ebx
1400181c2:	48 89 1e             	mov    %rbx,(%rsi)
1400181c5:	48 8b c6             	mov    %rsi,%rax
1400181c8:	48 8b 5c 24 48       	mov    0x48(%rsp),%rbx
1400181cd:	48 8b 74 24 50       	mov    0x50(%rsp),%rsi
1400181d2:	48 83 c4 30          	add    $0x30,%rsp
1400181d6:	5f                   	pop    %rdi
1400181d7:	c3                   	ret
1400181d8:	48 89 5c 24 10       	mov    %rbx,0x10(%rsp)
1400181dd:	48 89 74 24 18       	mov    %rsi,0x18(%rsp)
1400181e2:	48 89 4c 24 08       	mov    %rcx,0x8(%rsp)
1400181e7:	57                   	push   %rdi
1400181e8:	48 83 ec 30          	sub    $0x30,%rsp
1400181ec:	48 8b f2             	mov    %rdx,%rsi
1400181ef:	48 8b f9             	mov    %rcx,%rdi
1400181f2:	b9 18 00 00 00       	mov    $0x18,%ecx
1400181f7:	e8 6c 40 ff ff       	call   0x14000c268
1400181fc:	48 8b d8             	mov    %rax,%rbx
1400181ff:	48 89 44 24 40       	mov    %rax,0x40(%rsp)
140018204:	48 85 c0             	test   %rax,%rax
140018207:	74 40                	je     0x140018249
140018209:	48 83 20 00          	andq   $0x0,(%rax)
14001820d:	48 83 60 08 00       	andq   $0x0,0x8(%rax)
140018212:	48 83 60 10 00       	andq   $0x0,0x10(%rax)
140018217:	4c 8d 4e 08          	lea    0x8(%rsi),%r9
14001821b:	49 8b 09             	mov    (%r9),%rcx
14001821e:	48 2b 0e             	sub    (%rsi),%rcx
140018221:	48 b8 25 49 92 24 49 	movabs $0x4924924924924925,%rax
140018228:	92 24 49
14001822b:	48 f7 e9             	imul   %rcx
14001822e:	48 c1 fa 04          	sar    $0x4,%rdx
140018232:	48 8b c2             	mov    %rdx,%rax
140018235:	48 c1 e8 3f          	shr    $0x3f,%rax
140018239:	48 03 d0             	add    %rax,%rdx
14001823c:	4c 8b c6             	mov    %rsi,%r8
14001823f:	48 8b cb             	mov    %rbx,%rcx
140018242:	e8 51 f9 ff ff       	call   0x140017b98
140018247:	eb 02                	jmp    0x14001824b
140018249:	33 db                	xor    %ebx,%ebx
14001824b:	48 89 1f             	mov    %rbx,(%rdi)
14001824e:	48 8b c7             	mov    %rdi,%rax
140018251:	48 8b 5c 24 48       	mov    0x48(%rsp),%rbx
140018256:	48 8b 74 24 50       	mov    0x50(%rsp),%rsi
14001825b:	48 83 c4 30          	add    $0x30,%rsp
14001825f:	5f                   	pop    %rdi
140018260:	c3                   	ret
140018261:	90                   	nop
140018262:	90                   	nop
140018263:	90                   	nop
140018264:	48 89 5c 24 10       	mov    %rbx,0x10(%rsp)
140018269:	48 89 6c 24 18       	mov    %rbp,0x18(%rsp)
14001826e:	48 89 74 24 20       	mov    %rsi,0x20(%rsp)
140018273:	57                   	push   %rdi
140018274:	48 83 ec 20          	sub    $0x20,%rsp
140018278:	8b 02                	mov    (%rdx),%eax
14001827a:	48 8d 79 08          	lea    0x8(%rcx),%rdi
14001827e:	48 8b d9             	mov    %rcx,%rbx
140018281:	89 01                	mov    %eax,(%rcx)
140018283:	33 ed                	xor    %ebp,%ebp
140018285:	48 89 7c 24 30       	mov    %rdi,0x30(%rsp)
14001828a:	49 8b f0             	mov    %r8,%rsi
14001828d:	8d 4d 20             	lea    0x20(%rbp),%ecx
140018290:	e8 d3 3f ff ff       	call   0x14000c268
140018295:	48 85 c0             	test   %rax,%rax
140018298:	74 17                	je     0x1400182b1
14001829a:	0f 57 c0             	xorps  %xmm0,%xmm0
14001829d:	0f 11 00             	movups %xmm0,(%rax)
1400182a0:	48 89 68 10          	mov    %rbp,0x10(%rax)
1400182a4:	48 c7 40 18 07 00 00 	movq   $0x7,0x18(%rax)
1400182ab:	00
1400182ac:	66 89 28             	mov    %bp,(%rax)
1400182af:	eb 03                	jmp    0x1400182b4
1400182b1:	48 8b c5             	mov    %rbp,%rax
1400182b4:	48 8b 6c 24 40       	mov    0x40(%rsp),%rbp
1400182b9:	48 89 07             	mov    %rax,(%rdi)
1400182bc:	8a 06                	mov    (%rsi),%al
1400182be:	48 8b 74 24 48       	mov    0x48(%rsp),%rsi
1400182c3:	88 43 10             	mov    %al,0x10(%rbx)
1400182c6:	48 8b c3             	mov    %rbx,%rax
1400182c9:	48 8b 5c 24 38       	mov    0x38(%rsp),%rbx
1400182ce:	48 83 c4 20          	add    $0x20,%rsp
1400182d2:	5f                   	pop    %rdi
1400182d3:	c3                   	ret
1400182d4:	48 89 4c 24 08       	mov    %rcx,0x8(%rsp)
1400182d9:	53                   	push   %rbx
1400182da:	48 83 ec 20          	sub    $0x20,%rsp
1400182de:	48 8b d9             	mov    %rcx,%rbx
1400182e1:	8b 02                	mov    (%rdx),%eax
1400182e3:	89 01                	mov    %eax,(%rcx)
1400182e5:	48 83 61 08 00       	andq   $0x0,0x8(%rcx)
1400182ea:	48 83 61 10 00       	andq   $0x0,0x10(%rcx)
1400182ef:	b9 38 00 00 00       	mov    $0x38,%ecx
1400182f4:	ff 15 16 c2 01 00    	call   *0x1c216(%rip)        # 0x140034510
1400182fa:	48 85 c0             	test   %rax,%rax
1400182fd:	74 4a                	je     0x140018349
1400182ff:	48 89 00             	mov    %rax,(%rax)
140018302:	48 89 40 08          	mov    %rax,0x8(%rax)
140018306:	48 89 43 08          	mov    %rax,0x8(%rbx)
14001830a:	48 8d 4b 18          	lea    0x18(%rbx),%rcx
14001830e:	48 83 21 00          	andq   $0x0,(%rcx)
140018312:	48 83 61 08 00       	andq   $0x0,0x8(%rcx)
140018317:	48 83 61 10 00       	andq   $0x0,0x10(%rcx)
14001831c:	48 c7 43 30 07 00 00 	movq   $0x7,0x30(%rbx)
140018323:	00
140018324:	48 c7 43 38 08 00 00 	movq   $0x8,0x38(%rbx)
14001832b:	00
14001832c:	c7 03 00 00 80 3f    	movl   $0x3f800000,(%rbx)
140018332:	4c 8b 43 08          	mov    0x8(%rbx),%r8
140018336:	ba 10 00 00 00       	mov    $0x10,%edx
14001833b:	e8 74 05 00 00       	call   0x1400188b4
140018340:	48 8b c3             	mov    %rbx,%rax
140018343:	48 83 c4 20          	add    $0x20,%rsp
140018347:	5b                   	pop    %rbx
140018348:	c3                   	ret
140018349:	e8 a5 97 01 00       	call   0x140031af3
14001834e:	cc                   	int3
14001834f:	90                   	nop
140018350:	40 53                	rex push %rbx
140018352:	48 83 ec 20          	sub    $0x20,%rsp
140018356:	48 8b d9             	mov    %rcx,%rbx
140018359:	48 8b c2             	mov    %rdx,%rax
14001835c:	48 8d 0d 45 e4 01 00 	lea    0x1e445(%rip),%rcx        # 0x1400367a8
140018363:	0f 57 c0             	xorps  %xmm0,%xmm0