140822376:	49 8b ce             	mov    %r14,%rcx
140822379:	e8 12 ed 60 00       	call   0x140e31090
14082237e:	48 8b 75 b0          	mov    -0x50(%rbp),%rsi
140822382:	48 85 f6             	test   %rsi,%rsi
140822385:	74 72                	je     0x1408223f9
140822387:	48 8b fe             	mov    %rsi,%rdi
14082238a:	49 8b f4             	mov    %r12,%rsi
14082238d:	48 85 ff             	test   %rdi,%rdi
140822390:	74 67                	je     0x1408223f9
140822392:	48 8b 1f             	mov    (%rdi),%rbx
140822395:	48 85 db             	test   %rbx,%rbx
140822398:	74 52                	je     0x1408223ec
14082239a:	4c 8b 77 08          	mov    0x8(%rdi),%r14
14082239e:	49 3b de             	cmp    %r14,%rbx
1408223a1:	74 11                	je     0x1408223b4
1408223a3:	48 8b cb             	mov    %rbx,%rcx
1408223a6:	e8 e5 f7 f7 ff       	call   0x1407a1b90
1408223ab:	48 83 c3 38          	add    $0x38,%rbx
1408223af:	49 3b de             	cmp    %r14,%rbx
1408223b2:	75 ef                	jne    0x1408223a3
1408223b4:	48 8b 4f 10          	mov    0x10(%rdi),%rcx
1408223b8:	48 2b 0f             	sub    (%rdi),%rcx
1408223bb:	48 b8 25 49 92 24 49 	movabs $0x4924924924924925,%rax
1408223c2:	92 24 49
1408223c5:	48 f7 e9             	imul   %rcx
1408223c8:	48 c1 fa 04          	sar    $0x4,%rdx
1408223cc:	4c 8b c2             	mov    %rdx,%r8
1408223cf:	49 c1 e8 3f          	shr    $0x3f,%r8
1408223d3:	4c 03 c2             	add    %rdx,%r8
1408223d6:	48 8b 17             	mov    (%rdi),%rdx
1408223d9:	48 8b cf             	mov    %rdi,%rcx
1408223dc:	e8 3f 59 b9 ff       	call   0x1403b7d20
1408223e1:	4c 89 27             	mov    %r12,(%rdi)
1408223e4:	4c 89 67 08          	mov    %r12,0x8(%rdi)
1408223e8:	4c 89 67 10          	mov    %r12,0x10(%rdi)
1408223ec:	ba 18 00 00 00       	mov    $0x18,%edx
1408223f1:	48 8b cf             	mov    %rdi,%rcx
1408223f4:	e8 4b 8d 5f 00       	call   0x140e1b144
1408223f9:	48 8b 5d a8          	mov    -0x58(%rbp),%rbx
1408223fd:	48 85 db             	test   %rbx,%rbx
140822400:	74 33                	je     0x140822435
140822402:	48 8b 13             	mov    (%rbx),%rdx
140822405:	48 85 d2             	test   %rdx,%rdx
140822408:	74 1e                	je     0x140822428
14082240a:	4c 8b 43 10          	mov    0x10(%rbx),%r8
14082240e:	4c 2b c2             	sub    %rdx,%r8
140822411:	49 c1 f8 03          	sar    $0x3,%r8
140822415:	48 8b cb             	mov    %rbx,%rcx
140822418:	e8 f3 d1 97 ff       	call   0x14019f610
14082241d:	4c 89 23             	mov    %r12,(%rbx)
140822420:	4c 89 63 08          	mov    %r12,0x8(%rbx)
140822424:	4c 89 63 10          	mov    %r12,0x10(%rbx)
140822428:	ba 18 00 00 00       	mov    $0x18,%edx
14082242d:	48 8b cb             	mov    %rbx,%rcx
140822430:	e8 0f 8d 5f 00       	call   0x140e1b144
140822435:	48 85 f6             	test   %rsi,%rsi
140822438:	74 0d                	je     0x140822447
14082243a:	48 8b d6             	mov    %rsi,%rdx
14082243d:	48 8d 4d b0          	lea    -0x50(%rbp),%rcx
140822441:	e8 6a 6b d5 ff       	call   0x140578fb0
140822446:	90                   	nop
140822447:	0f 28 b4 24 10 01 00 	movaps 0x110(%rsp),%xmm6
14082244e:	00
14082244f:	0f 28 bc 24 00 01 00 	movaps 0x100(%rsp),%xmm7
140822456:	00
140822457:	48 81 c4 28 01 00 00 	add    $0x128,%rsp
14082245e:	41 5f                	pop    %r15
140822460:	41 5e                	pop    %r14
140822462:	41 5d                	pop    %r13
140822464:	41 5c                	pop    %r12
140822466:	5f                   	pop    %rdi
140822467:	5e                   	pop    %rsi
140822468:	5b                   	pop    %rbx
140822469:	5d                   	pop    %rbp
14082246a:	c3                   	ret
14082246b:	48 8d 4c 24 60       	lea    0x60(%rsp),%rcx
140822470:	e8 5b 3c a5 ff       	call   0x1402760d0
140822475:	44 8b c0             	mov    %eax,%r8d
140822478:	45 8b cc             	mov    %r12d,%r9d
14082247b:	48 8d 15 16 c4 7b 00 	lea    0x7bc416(%rip),%rdx        # 0x140fde898
140822482:	48 8b 0d 6f f0 c0 00 	mov    0xc0f06f(%rip),%rcx        # 0x1414314f8
140822489:	e8 c2 14 f7 ff       	call   0x140793950
14082248e:	cc                   	int3
14082248f:	48 8d 4d d8          	lea    -0x28(%rbp),%rcx
140822493:	e8 78 06 12 00       	call   0x140942b10
140822498:	44 89 64 24 20       	mov    %r12d,0x20(%rsp)
14082249d:	4c 8b ce             	mov    %rsi,%r9
1408224a0:	4c 8d 05 49 df 7e 00 	lea    0x7edf49(%rip),%r8        # 0x1410103f0
1408224a7:	48 8d 55 d8          	lea    -0x28(%rbp),%rdx
1408224ab:	48 8b 0d 46 f0 c0 00 	mov    0xc0f046(%rip),%rcx        # 0x1414314f8
1408224b2:	e8 39 21 f7 ff       	call   0x1407945f0
1408224b7:	cc                   	int3
1408224b8:	cc                   	int3
1408224b9:	cc                   	int3
1408224ba:	cc                   	int3
1408224bb:	cc                   	int3
1408224bc:	cc                   	int3
1408224bd:	cc                   	int3
1408224be:	cc                   	int3
1408224bf:	cc                   	int3
1408224c0:	48 8b c4             	mov    %rsp,%rax
1408224c3:	55                   	push   %rbp
1408224c4:	53                   	push   %rbx
1408224c5:	56                   	push   %rsi
1408224c6:	57                   	push   %rdi
1408224c7:	41 54                	push   %r12
1408224c9:	41 55                	push   %r13
1408224cb:	41 56                	push   %r14
1408224cd:	41 57                	push   %r15
1408224cf:	48 8d a8 38 ff ff ff 	lea    -0xc8(%rax),%rbp
1408224d6:	48 81 ec 88 01 00 00 	sub    $0x188,%rsp
1408224dd:	0f 29 70 a8          	movaps %xmm6,-0x58(%rax)
1408224e1:	0f 29 78 98          	movaps %xmm7,-0x68(%rax)
1408224e5:	33 f6                	xor    %esi,%esi
1408224e7:	0f b7 c6             	movzwl %si,%eax
1408224ea:	89 85 d8 00 00 00    	mov    %eax,0xd8(%rbp)
1408224f0:	66 89 44 24 60       	mov    %ax,0x60(%rsp)
1408224f5:	89 85 d0 00 00 00    	mov    %eax,0xd0(%rbp)
1408224fb:	66 89 44 24 62       	mov    %ax,0x62(%rsp)
140822500:	c7 44 24 64 01 00 00 	movl   $0x1,0x64(%rsp)
140822507:	00
140822508:	c7 44 24 68 01 00 00 	movl   $0x1,0x68(%rsp)
14082250f:	00
140822510:	66 89 74 24 6c       	mov    %si,0x6c(%rsp)
140822515:	bb ff ff ff ff       	mov    $0xffffffff,%ebx
14082251a:	89 5c 24 70          	mov    %ebx,0x70(%rsp)
14082251e:	48 89 74 24 74       	mov    %rsi,0x74(%rsp)
140822523:	48 89 75 80          	mov    %rsi,-0x80(%rbp)
140822527:	89 75 88             	mov    %esi,-0x78(%rbp)
14082252a:	48 89 75 90          	mov    %rsi,-0x70(%rbp)
14082252e:	48 89 75 98          	mov    %rsi,-0x68(%rbp)
140822532:	0f 57 c0             	xorps  %xmm0,%xmm0
140822535:	66 0f 7f 45 a0       	movdqa %xmm0,-0x60(%rbp)
14082253a:	48 89 75 b0          	mov    %rsi,-0x50(%rbp)
14082253e:	45 33 c0             	xor    %r8d,%r8d
140822541:	33 d2                	xor    %edx,%edx
140822543:	48 8d 4d 00          	lea    0x0(%rbp),%rcx
140822547:	e8 f4 eb f0 ff       	call   0x140731140
14082254c:	90                   	nop
14082254d:	c7 85 e0 00 00 00 0f 	movl   $0xf,0xe0(%rbp)
140822554:	00 00 00
140822557:	b9 38 00 00 00       	mov    $0x38,%ecx
14082255c:	e8 a7 8b 5f 00       	call   0x140e1b108
140822561:	48 89 45 c0          	mov    %rax,-0x40(%rbp)
140822565:	48 85 c0             	test   %rax,%rax
140822568:	74 13                	je     0x14082257d
14082256a:	ba 05 00 00 00       	mov    $0x5,%edx
14082256f:	48 8b c8             	mov    %rax,%rcx
140822572:	e8 c9 f4 f7 ff       	call   0x1407a1a40
140822577:	48 89 45 f8          	mov    %rax,-0x8(%rbp)
14082257b:	eb 04                	jmp    0x140822581
14082257d:	48 89 75 f8          	mov    %rsi,-0x8(%rbp)
140822581:	b9 38 00 00 00       	mov    $0x38,%ecx
140822586:	e8 7d 8b 5f 00       	call   0x140e1b108
14082258b:	48 89 45 c0          	mov    %rax,-0x40(%rbp)
14082258f:	48 85 c0             	test   %rax,%rax
140822592:	74 12                	je     0x1408225a6
140822594:	ba 05 00 00 00       	mov    $0x5,%edx
140822599:	48 8b c8             	mov    %rax,%rcx
14082259c:	e8 9f f4 f7 ff       	call   0x1407a1a40
1408225a1:	48 8b f8             	mov    %rax,%rdi
1408225a4:	eb 03                	jmp    0x1408225a9
1408225a6:	48 8b fe             	mov    %rsi,%rdi
1408225a9:	48 89 7d c0          	mov    %rdi,-0x40(%rbp)
1408225ad:	c7 85 e8 00 00 00 0a 	movl   $0xa,0xe8(%rbp)
1408225b4:	00 00 00
1408225b7:	b9 38 00 00 00       	mov    $0x38,%ecx
1408225bc:	e8 47 8b 5f 00       	call   0x140e1b108
1408225c1:	48 89 45 e0          	mov    %rax,-0x20(%rbp)
1408225c5:	48 85 c0             	test   %rax,%rax
1408225c8:	74 13                	je     0x1408225dd
1408225ca:	ba 19 00 00 00       	mov    $0x19,%edx
1408225cf:	48 8b c8             	mov    %rax,%rcx
1408225d2:	e8 69 f4 f7 ff       	call   0x1407a1a40
1408225d7:	48 89 45 e0          	mov    %rax,-0x20(%rbp)
1408225db:	eb 04                	jmp    0x1408225e1
1408225dd:	48 89 75 e0          	mov    %rsi,-0x20(%rbp)
1408225e1:	b9 38 00 00 00       	mov    $0x38,%ecx
1408225e6:	e8 1d 8b 5f 00       	call   0x140e1b108
1408225eb:	48 89 45 d8          	mov    %rax,-0x28(%rbp)
1408225ef:	48 85 c0             	test   %rax,%rax
1408225f2:	74 13                	je     0x140822607
1408225f4:	ba 19 00 00 00       	mov    $0x19,%edx
1408225f9:	48 8b c8             	mov    %rax,%rcx
1408225fc:	e8 3f f4 f7 ff       	call   0x1407a1a40
140822601:	48 89 45 d8          	mov    %rax,-0x28(%rbp)
140822605:	eb 04                	jmp    0x14082260b
140822607:	48 89 75 d8          	mov    %rsi,-0x28(%rbp)
14082260b:	48 8b cf             	mov    %rdi,%rcx
14082260e:	e8 4d fe f7 ff       	call   0x1407a2460
140822613:	4c 8b e8             	mov    %rax,%r13
140822616:	4c 8b 77 18          	mov    0x18(%rdi),%r14
14082261a:	48 8b cf             	mov    %rdi,%rcx
14082261d:	e8 6e 02 f8 ff       	call   0x1407a2890
140822622:	4c 8b e0             	mov    %rax,%r12
140822625:	b9 20 00 00 00       	mov    $0x20,%ecx
14082262a:	e8 fd 00 61 00       	call   0x140e3272c
14082262f:	48 8b f0             	mov    %rax,%rsi
140822632:	48 89 45 a0          	mov    %rax,-0x60(%rbp)
140822636:	48 8b c8             	mov    %rax,%rcx
140822639:	48 f7 d9             	neg    %rcx
14082263c:	48 1b d2             	sbb    %rdx,%rdx
14082263f:	48 f7 da             	neg    %rdx
140822642:	48 ff ca             	dec    %rdx
140822645:	41 b8 ff ff 00 00    	mov    $0xffff,%r8d
14082264b:	48 85 c0             	test   %rax,%rax
14082264e:	74 1e                	je     0x14082266e
140822650:	48 8b c2             	mov    %rdx,%rax
140822653:	48 c1 e0 05          	shl    $0x5,%rax
140822657:	48 03 c6             	add    %rsi,%rax
14082265a:	66 0f 1f 44 00 00    	nopw   0x0(%rax,%rax,1)
140822660:	66 44 89 00          	mov    %r8w,(%rax)
140822664:	48 8d 40 e0          	lea    -0x20(%rax),%rax
140822668:	48 83 ea 01          	sub    $0x1,%rdx
14082266c:	79 f2                	jns    0x140822660
14082266e:	bf ff ff ff ff       	mov    $0xffffffff,%edi
140822673:	4c 3b f7             	cmp    %rdi,%r14
140822676:	0f 87 88 0a 00 00    	ja     0x140823104
14082267c:	44 8b fb             	mov    %ebx,%r15d
14082267f:	48 85 f6             	test   %rsi,%rsi
140822682:	75 4d                	jne    0x1408226d1
140822684:	8b c3                	mov    %ebx,%eax
140822686:	66 89 44 24 40       	mov    %ax,0x40(%rsp)
14082268b:	44 89 74 24 44       	mov    %r14d,0x44(%rsp)
140822690:	44 89 6c 24 48       	mov    %r13d,0x48(%rsp)
140822695:	48 8d 85 e0 00 00 00 	lea    0xe0(%rbp),%rax
14082269c:	48 89 44 24 50       	mov    %rax,0x50(%rsp)
1408226a1:	4d 85 e4             	test   %r12,%r12
1408226a4:	0f 84 fe 01 00 00    	je     0x1408228a8
1408226aa:	41 83 fe 08          	cmp    $0x8,%r14d
1408226ae:	0f 87 ef 01 00 00    	ja     0x1408228a3
1408226b4:	45 8b c6             	mov    %r14d,%r8d
1408226b7:	49 8b d4             	mov    %r12,%rdx
1408226ba:	48 8d 4c 24 58       	lea    0x58(%rsp),%rcx
1408226bf:	e8 4c c9 6b 00       	call   0x140edf010
1408226c4:	49 8b cc             	mov    %r12,%rcx
1408226c7:	e8 78 8a 5f 00       	call   0x140e1b144
1408226cc:	e9 d7 01 00 00       	jmp    0x1408228a8
1408226d1:	45 33 ff             	xor    %r15d,%r15d
1408226d4:	33 ff                	xor    %edi,%edi
1408226d6:	48 8d 5e 18          	lea    0x18(%rsi),%rbx
1408226da:	66 0f 1f 44 00 00    	nopw   0x0(%rax,%rax,1)
1408226e0:	0f b7 43 e8          	movzwl -0x18(%rbx),%eax
1408226e4:	66 41 3b c0          	cmp    %r8w,%ax
1408226e8:	74 50                	je     0x14082273a
1408226ea:	41 8b cf             	mov    %r15d,%ecx
1408226ed:	2b c8                	sub    %eax,%ecx
1408226ef:	85 c9                	test   %ecx,%ecx
1408226f1:	7f 47                	jg     0x14082273a
1408226f3:	75 35                	jne    0x14082272a
1408226f5:	8b 43 f0             	mov    -0x10(%rbx),%eax
1408226f8:	49 33 c5             	xor    %r13,%rax
1408226fb:	8b c0                	mov    %eax,%eax
1408226fd:	48 85 c0             	test   %rax,%rax
140822700:	75 28                	jne    0x14082272a
140822702:	8b 43 ec             	mov    -0x14(%rbx),%eax
140822705:	41 3b c6             	cmp    %r14d,%eax
140822708:	75 20                	jne    0x14082272a
14082270a:	83 f8 08             	cmp    $0x8,%eax
14082270d:	48 8b cb             	mov    %rbx,%rcx
140822710:	76 03                	jbe    0x140822715
140822712:	48 8b 0b             	mov    (%rbx),%rcx
140822715:	4c 8b c0             	mov    %rax,%r8
140822718:	49 8b d4             	mov    %r12,%rdx
14082271b:	e8 30 d3 6b 00       	call   0x140edfa50
140822720:	85 c0                	test   %eax,%eax
140822722:	74 27                	je     0x14082274b
140822724:	41 b8 ff ff 00 00    	mov    $0xffff,%r8d
14082272a:	41 ff c7             	inc    %r15d
14082272d:	48 ff c7             	inc    %rdi
140822730:	48 83 c3 20          	add    $0x20,%rbx
140822734:	48 83 ff 01          	cmp    $0x1,%rdi
140822738:	7c a6                	jl     0x1408226e0
14082273a:	41 8b c7             	mov    %r15d,%eax
14082273d:	45 3b f8             	cmp    %r8d,%r15d
140822740:	0f 8d 9a 09 00 00    	jge    0x1408230e0
140822746:	e9 3b ff ff ff       	jmp    0x140822686
14082274b:	49 63 cf             	movslq %r15d,%rcx
14082274e:	41 bf ff ff ff ff    	mov    $0xffffffff,%r15d
140822754:	41 8b c7             	mov    %r15d,%eax
140822757:	85 c9                	test   %ecx,%ecx
140822759:	0f 88 27 ff ff ff    	js     0x140822686
14082275f:	48 8b c1             	mov    %rcx,%rax
140822762:	48 c1 e0 05          	shl    $0x5,%rax
140822766:	48 8d 8d e0 00 00 00 	lea    0xe0(%rbp),%rcx
14082276d:	48 89 4c 30 10       	mov    %rcx,0x10(%rax,%rsi,1)
140822772:	49 8b cc             	mov    %r12,%rcx
140822775:	e8 ca 89 5f 00       	call   0x140e1b144
14082277a:	45 33 e4             	xor    %r12d,%r12d
14082277d:	48 8b 75 d8          	mov    -0x28(%rbp),%rsi
140822781:	48 8b ce             	mov    %rsi,%rcx
140822784:	e8 d7 fc f7 ff       	call   0x1407a2460
140822789:	48 8b d8             	mov    %rax,%rbx
14082278c:	48 8b 7e 18          	mov    0x18(%rsi),%rdi
140822790:	48 8b ce             	mov    %rsi,%rcx
140822793:	e8 f8 00 f8 ff       	call   0x1407a2890
140822798:	4c 89 64 24 30       	mov    %r12,0x30(%rsp)
14082279d:	c6 44 24 28 00       	movb   $0x0,0x28(%rsp)
1408227a2:	48 8d 8d e8 00 00 00 	lea    0xe8(%rbp),%rcx
1408227a9:	48 89 4c 24 20       	mov    %rcx,0x20(%rsp)
1408227ae:	4c 8b cb             	mov    %rbx,%r9
1408227b1:	4c 8b c7             	mov    %rdi,%r8
1408227b4:	48 8b d0             	mov    %rax,%rdx
1408227b7:	48 8d 4c 24 60       	lea    0x60(%rsp),%rcx
1408227bc:	e8 6f 71 d5 ff       	call   0x140579930
1408227c1:	4c 8b 6d f8          	mov    -0x8(%rbp),%r13
1408227c5:	49 8b cd             	mov    %r13,%rcx
1408227c8:	e8 93 fc f7 ff       	call   0x1407a2460
1408227cd:	48 8b d8             	mov    %rax,%rbx
1408227d0:	49 8b 7d 18          	mov    0x18(%r13),%rdi
1408227d4:	49 8b cd             	mov    %r13,%rcx
1408227d7:	e8 b4 00 f8 ff       	call   0x1407a2890
1408227dc:	4c 89 64 24 30       	mov    %r12,0x30(%rsp)
1408227e1:	c6 44 24 28 00       	movb   $0x0,0x28(%rsp)
1408227e6:	48 8d 8d e0 00 00 00 	lea    0xe0(%rbp),%rcx
1408227ed:	48 89 4c 24 20       	mov    %rcx,0x20(%rsp)
1408227f2:	4c 8b cb             	mov    %rbx,%r9
1408227f5:	4c 8b c7             	mov    %rdi,%r8
1408227f8:	48 8b d0             	mov    %rax,%rdx
1408227fb:	48 8d 4d 00          	lea    0x0(%rbp),%rcx
1408227ff:	e8 2c 71 d5 ff       	call   0x140579930
140822804:	4c 8b 7d e0          	mov    -0x20(%rbp),%r15
140822808:	49 8b cf             	mov    %r15,%rcx
14082280b:	e8 50 fc f7 ff       	call   0x1407a2460
140822810:	48 8b d8             	mov    %rax,%rbx
140822813:	49 8b 7f 18          	mov    0x18(%r15),%rdi
140822817:	49 8b cf             	mov    %r15,%rcx
14082281a:	e8 71 00 f8 ff       	call   0x1407a2890
14082281f:	4c 89 64 24 30       	mov    %r12,0x30(%rsp)
140822824:	c6 44 24 28 00       	movb   $0x0,0x28(%rsp)
140822829:	48 8d 8d e8 00 00 00 	lea    0xe8(%rbp),%rcx
140822830:	48 89 4c 24 20       	mov    %rcx,0x20(%rsp)
140822835:	4c 8b cb             	mov    %rbx,%r9
140822838:	4c 8b c7             	mov    %rdi,%r8
14082283b:	48 8b d0             	mov    %rax,%rdx
14082283e:	48 8d 4d 00          	lea    0x0(%rbp),%rcx
140822842:	e8 e9 70 d5 ff       	call   0x140579930
140822847:	48 bb 25 49 92 24 49 	movabs $0x4924924924924925,%rbx
14082284e:	92 24 49
140822851:	4c 8b 75 b0          	mov    -0x50(%rbp),%r14
140822855:	4d 85 f6             	test   %r14,%r14
140822858:	0f 84 89 05 00 00    	je     0x140822de7
14082285e:	83 7c 24 74 00       	cmpl   $0x0,0x74(%rsp)
140822863:	0f 8e 7e 05 00 00    	jle    0x140822de7
140822869:	4d 8b 06             	mov    (%r14),%r8
14082286c:	49 8b 4e 08          	mov    0x8(%r14),%rcx
140822870:	49 2b c8             	sub    %r8,%rcx
140822873:	48 8b c3             	mov    %rbx,%rax
140822876:	48 f7 e9             	imul   %rcx
140822879:	48 c1 fa 04          	sar    $0x4,%rdx