1402772c4:	48 c1 fa 02          	sar    $0x2,%rdx
1402772c8:	48 8b c2             	mov    %rdx,%rax
1402772cb:	48 c1 e8 3f          	shr    $0x3f,%rax
1402772cf:	48 03 d0             	add    %rax,%rdx
1402772d2:	48 8d 14 52          	lea    (%rdx,%rdx,2),%rdx
1402772d6:	48 c1 e2 03          	shl    $0x3,%rdx
1402772da:	48 81 fa 00 10 00 00 	cmp    $0x1000,%rdx
1402772e1:	72 18                	jb     0x1402772fb
1402772e3:	49 8b 48 f8          	mov    -0x8(%r8),%rcx
1402772e7:	48 83 c2 27          	add    $0x27,%rdx
1402772eb:	4c 2b c1             	sub    %rcx,%r8
1402772ee:	49 8d 40 f8          	lea    -0x8(%r8),%rax
1402772f2:	48 83 f8 1f          	cmp    $0x1f,%rax
1402772f6:	77 23                	ja     0x14027731b
1402772f8:	4c 8b c1             	mov    %rcx,%r8
1402772fb:	49 8b c8             	mov    %r8,%rcx
1402772fe:	e8 41 3e ba 00       	call   0x140e1b144
140277303:	33 c0                	xor    %eax,%eax
140277305:	48 89 06             	mov    %rax,(%rsi)
140277308:	48 89 46 08          	mov    %rax,0x8(%rsi)
14027730c:	48 89 46 10          	mov    %rax,0x10(%rsi)
140277310:	48 8b 5c 24 40       	mov    0x40(%rsp),%rbx
140277315:	48 83 c4 20          	add    $0x20,%rsp
140277319:	5e                   	pop    %rsi
14027731a:	c3                   	ret
14027731b:	e8 84 2e bb 00       	call   0x140e2a1a4
140277320:	cc                   	int3
140277321:	cc                   	int3
140277322:	cc                   	int3
140277323:	cc                   	int3
140277324:	cc                   	int3
140277325:	cc                   	int3
140277326:	cc                   	int3
140277327:	cc                   	int3
140277328:	cc                   	int3
140277329:	cc                   	int3
14027732a:	cc                   	int3
14027732b:	cc                   	int3
14027732c:	cc                   	int3
14027732d:	cc                   	int3
14027732e:	cc                   	int3
14027732f:	cc                   	int3
140277330:	48 89 5c 24 18       	mov    %rbx,0x18(%rsp)
140277335:	56                   	push   %rsi
140277336:	48 83 ec 20          	sub    $0x20,%rsp
14027733a:	48 8b 19             	mov    (%rcx),%rbx
14027733d:	48 8b f1             	mov    %rcx,%rsi
140277340:	48 85 db             	test   %rbx,%rbx
140277343:	0f 84 87 00 00 00    	je     0x1402773d0
140277349:	48 89 7c 24 38       	mov    %rdi,0x38(%rsp)
14027734e:	48 8b 79 08          	mov    0x8(%rcx),%rdi
140277352:	48 3b df             	cmp    %rdi,%rbx
140277355:	74 11                	je     0x140277368
140277357:	48 8b cb             	mov    %rbx,%rcx
14027735a:	e8 81 fe ff ff       	call   0x1402771e0
14027735f:	48 83 c3 18          	add    $0x18,%rbx
140277363:	48 3b df             	cmp    %rdi,%rbx
140277366:	75 ef                	jne    0x140277357
140277368:	4c 8b 06             	mov    (%rsi),%r8
14027736b:	48 b8 ab aa aa aa aa 	movabs $0x2aaaaaaaaaaaaaab,%rax
140277372:	aa aa 2a
140277375:	48 8b 4e 10          	mov    0x10(%rsi),%rcx
140277379:	48 8b 7c 24 38       	mov    0x38(%rsp),%rdi
14027737e:	49 2b c8             	sub    %r8,%rcx
140277381:	48 f7 e9             	imul   %rcx
140277384:	48 c1 fa 02          	sar    $0x2,%rdx
140277388:	48 8b c2             	mov    %rdx,%rax
14027738b:	48 c1 e8 3f          	shr    $0x3f,%rax
14027738f:	48 03 d0             	add    %rax,%rdx
140277392:	48 8d 14 52          	lea    (%rdx,%rdx,2),%rdx
140277396:	48 c1 e2 03          	shl    $0x3,%rdx
14027739a:	48 81 fa 00 10 00 00 	cmp    $0x1000,%rdx
1402773a1:	72 18                	jb     0x1402773bb
1402773a3:	49 8b 48 f8          	mov    -0x8(%r8),%rcx
1402773a7:	48 83 c2 27          	add    $0x27,%rdx
1402773ab:	4c 2b c1             	sub    %rcx,%r8
1402773ae:	49 8d 40 f8          	lea    -0x8(%r8),%rax
1402773b2:	48 83 f8 1f          	cmp    $0x1f,%rax
1402773b6:	77 23                	ja     0x1402773db
1402773b8:	4c 8b c1             	mov    %rcx,%r8
1402773bb:	49 8b c8             	mov    %r8,%rcx
1402773be:	e8 81 3d ba 00       	call   0x140e1b144
1402773c3:	33 c0                	xor    %eax,%eax
1402773c5:	48 89 06             	mov    %rax,(%rsi)
1402773c8:	48 89 46 08          	mov    %rax,0x8(%rsi)
1402773cc:	48 89 46 10          	mov    %rax,0x10(%rsi)
1402773d0:	48 8b 5c 24 40       	mov    0x40(%rsp),%rbx
1402773d5:	48 83 c4 20          	add    $0x20,%rsp
1402773d9:	5e                   	pop    %rsi
1402773da:	c3                   	ret
1402773db:	e8 c4 2d bb 00       	call   0x140e2a1a4
1402773e0:	cc                   	int3
1402773e1:	cc                   	int3
1402773e2:	cc                   	int3
1402773e3:	cc                   	int3
1402773e4:	cc                   	int3
1402773e5:	cc                   	int3
1402773e6:	cc                   	int3
1402773e7:	cc                   	int3
1402773e8:	cc                   	int3
1402773e9:	cc                   	int3
1402773ea:	cc                   	int3
1402773eb:	cc                   	int3
1402773ec:	cc                   	int3
1402773ed:	cc                   	int3
1402773ee:	cc                   	int3
1402773ef:	cc                   	int3
1402773f0:	48 89 5c 24 18       	mov    %rbx,0x18(%rsp)
1402773f5:	56                   	push   %rsi
1402773f6:	48 83 ec 20          	sub    $0x20,%rsp
1402773fa:	48 8b 19             	mov    (%rcx),%rbx
1402773fd:	48 8b f1             	mov    %rcx,%rsi
140277400:	48 85 db             	test   %rbx,%rbx
140277403:	0f 84 87 00 00 00    	je     0x140277490
140277409:	48 89 7c 24 38       	mov    %rdi,0x38(%rsp)
14027740e:	48 8b 79 08          	mov    0x8(%rcx),%rdi
140277412:	48 3b df             	cmp    %rdi,%rbx
140277415:	74 11                	je     0x140277428
140277417:	48 8b cb             	mov    %rbx,%rcx
14027741a:	e8 01 a3 fa ff       	call   0x140221720
14027741f:	48 83 c3 28          	add    $0x28,%rbx
140277423:	48 3b df             	cmp    %rdi,%rbx
140277426:	75 ef                	jne    0x140277417
140277428:	4c 8b 06             	mov    (%rsi),%r8
14027742b:	48 b8 67 66 66 66 66 	movabs $0x6666666666666667,%rax
140277432:	66 66 66
140277435:	48 8b 4e 10          	mov    0x10(%rsi),%rcx
140277439:	48 8b 7c 24 38       	mov    0x38(%rsp),%rdi
14027743e:	49 2b c8             	sub    %r8,%rcx
140277441:	48 f7 e9             	imul   %rcx
140277444:	48 c1 fa 04          	sar    $0x4,%rdx
140277448:	48 8b c2             	mov    %rdx,%rax
14027744b:	48 c1 e8 3f          	shr    $0x3f,%rax
14027744f:	48 03 d0             	add    %rax,%rdx
140277452:	48 8d 14 92          	lea    (%rdx,%rdx,4),%rdx
140277456:	48 c1 e2 03          	shl    $0x3,%rdx
14027745a:	48 81 fa 00 10 00 00 	cmp    $0x1000,%rdx
140277461:	72 18                	jb     0x14027747b
140277463:	49 8b 48 f8          	mov    -0x8(%r8),%rcx
140277467:	48 83 c2 27          	add    $0x27,%rdx
14027746b:	4c 2b c1             	sub    %rcx,%r8
14027746e:	49 8d 40 f8          	lea    -0x8(%r8),%rax
140277472:	48 83 f8 1f          	cmp    $0x1f,%rax
140277476:	77 23                	ja     0x14027749b
140277478:	4c 8b c1             	mov    %rcx,%r8
14027747b:	49 8b c8             	mov    %r8,%rcx
14027747e:	e8 c1 3c ba 00       	call   0x140e1b144
140277483:	33 c0                	xor    %eax,%eax
140277485:	48 89 06             	mov    %rax,(%rsi)
140277488:	48 89 46 08          	mov    %rax,0x8(%rsi)
14027748c:	48 89 46 10          	mov    %rax,0x10(%rsi)
140277490:	48 8b 5c 24 40       	mov    0x40(%rsp),%rbx
140277495:	48 83 c4 20          	add    $0x20,%rsp
140277499:	5e                   	pop    %rsi
14027749a:	c3                   	ret
14027749b:	e8 04 2d bb 00       	call   0x140e2a1a4
1402774a0:	cc                   	int3
1402774a1:	cc                   	int3
1402774a2:	cc                   	int3
1402774a3:	cc                   	int3
1402774a4:	cc                   	int3
1402774a5:	cc                   	int3
1402774a6:	cc                   	int3
1402774a7:	cc                   	int3
1402774a8:	cc                   	int3
1402774a9:	cc                   	int3
1402774aa:	cc                   	int3
1402774ab:	cc                   	int3
1402774ac:	cc                   	int3
1402774ad:	cc                   	int3
1402774ae:	cc                   	int3
1402774af:	cc                   	int3
1402774b0:	48 89 5c 24 18       	mov    %rbx,0x18(%rsp)
1402774b5:	56                   	push   %rsi
1402774b6:	48 83 ec 20          	sub    $0x20,%rsp
1402774ba:	48 8b 19             	mov    (%rcx),%rbx
1402774bd:	48 8b f1             	mov    %rcx,%rsi
1402774c0:	48 85 db             	test   %rbx,%rbx
1402774c3:	0f 84 87 00 00 00    	je     0x140277550
1402774c9:	48 89 7c 24 38       	mov    %rdi,0x38(%rsp)
1402774ce:	48 8b 79 08          	mov    0x8(%rcx),%rdi
1402774d2:	48 3b df             	cmp    %rdi,%rbx
1402774d5:	74 11                	je     0x1402774e8
1402774d7:	48 8b cb             	mov    %rbx,%rcx
1402774da:	e8 41 a2 fa ff       	call   0x140221720
1402774df:	48 83 c3 30          	add    $0x30,%rbx
1402774e3:	48 3b df             	cmp    %rdi,%rbx
1402774e6:	75 ef                	jne    0x1402774d7
1402774e8:	4c 8b 06             	mov    (%rsi),%r8
1402774eb:	48 b8 ab aa aa aa aa 	movabs $0x2aaaaaaaaaaaaaab,%rax
1402774f2:	aa aa 2a
1402774f5:	48 8b 4e 10          	mov    0x10(%rsi),%rcx
1402774f9:	48 8b 7c 24 38       	mov    0x38(%rsp),%rdi
1402774fe:	49 2b c8             	sub    %r8,%rcx
140277501:	48 f7 e9             	imul   %rcx
140277504:	48 c1 fa 03          	sar    $0x3,%rdx
140277508:	48 8b c2             	mov    %rdx,%rax
14027750b:	48 c1 e8 3f          	shr    $0x3f,%rax
14027750f:	48 03 d0             	add    %rax,%rdx
140277512:	48 8d 14 52          	lea    (%rdx,%rdx,2),%rdx
140277516:	48 c1 e2 04          	shl    $0x4,%rdx
14027751a:	48 81 fa 00 10 00 00 	cmp    $0x1000,%rdx
140277521:	72 18                	jb     0x14027753b
140277523:	49 8b 48 f8          	mov    -0x8(%r8),%rcx
140277527:	48 83 c2 27          	add    $0x27,%rdx
14027752b:	4c 2b c1             	sub    %rcx,%r8
14027752e:	49 8d 40 f8          	lea    -0x8(%r8),%rax
140277532:	48 83 f8 1f          	cmp    $0x1f,%rax
140277536:	77 23                	ja     0x14027755b
140277538:	4c 8b c1             	mov    %rcx,%r8
14027753b:	49 8b c8             	mov    %r8,%rcx
14027753e:	e8 01 3c ba 00       	call   0x140e1b144
140277543:	33 c0                	xor    %eax,%eax
140277545:	48 89 06             	mov    %rax,(%rsi)
140277548:	48 89 46 08          	mov    %rax,0x8(%rsi)
14027754c:	48 89 46 10          	mov    %rax,0x10(%rsi)
140277550:	48 8b 5c 24 40       	mov    0x40(%rsp),%rbx
140277555:	48 83 c4 20          	add    $0x20,%rsp
140277559:	5e                   	pop    %rsi
14027755a:	c3                   	ret
14027755b:	e8 44 2c bb 00       	call   0x140e2a1a4
140277560:	cc                   	int3
140277561:	cc                   	int3
140277562:	cc                   	int3
140277563:	cc                   	int3
140277564:	cc                   	int3
140277565:	cc                   	int3
140277566:	cc                   	int3
140277567:	cc                   	int3
140277568:	cc                   	int3
140277569:	cc                   	int3
14027756a:	cc                   	int3
14027756b:	cc                   	int3
14027756c:	cc                   	int3
14027756d:	cc                   	int3
14027756e:	cc                   	int3
14027756f:	cc                   	int3
140277570:	48 83 ec 28          	sub    $0x28,%rsp
140277574:	48 8d 0d 05 73 d6 00 	lea    0xd67305(%rip),%rcx        # 0x140fde880
14027757b:	e8 34 3e b8 00       	call   0x140dfb3b4
140277580:	cc                   	int3
140277581:	cc                   	int3
140277582:	cc                   	int3
140277583:	cc                   	int3
140277584:	cc                   	int3
140277585:	cc                   	int3
140277586:	cc                   	int3
140277587:	cc                   	int3
140277588:	cc                   	int3
140277589:	cc                   	int3
14027758a:	cc                   	int3
14027758b:	cc                   	int3
14027758c:	cc                   	int3
14027758d:	cc                   	int3
14027758e:	cc                   	int3
14027758f:	cc                   	int3
140277590:	48 89 5c 24 08       	mov    %rbx,0x8(%rsp)
140277595:	48 89 74 24 18       	mov    %rsi,0x18(%rsp)
14027759a:	55                   	push   %rbp
14027759b:	57                   	push   %rdi
14027759c:	41 54                	push   %r12
14027759e:	41 56                	push   %r14
1402775a0:	41 57                	push   %r15
1402775a2:	48 8b ec             	mov    %rsp,%rbp
1402775a5:	48 83 ec 40          	sub    $0x40,%rsp
1402775a9:	4d 8b f0             	mov    %r8,%r14
1402775ac:	4c 8b f9             	mov    %rcx,%r15
1402775af:	45 33 e4             	xor    %r12d,%r12d
1402775b2:	48 8b 3a             	mov    (%rdx),%rdi
1402775b5:	48 85 ff             	test   %rdi,%rdi
1402775b8:	74 1c                	je     0x1402775d6
1402775ba:	8b 47 10             	mov    0x10(%rdi),%eax
1402775bd:	ff c0                	inc    %eax
1402775bf:	89 47 10             	mov    %eax,0x10(%rdi)
1402775c2:	83 f8 01             	cmp    $0x1,%eax
1402775c5:	0f 8e 53 02 00 00    	jle    0x14027781e
1402775cb:	3d ff ff ff 7f       	cmp    $0x7fffffff,%eax
1402775d0:	0f 84 50 02 00 00    	je     0x140277826
1402775d6:	48 89 7d 38          	mov    %rdi,0x38(%rbp)
1402775da:	48 8b cf             	mov    %rdi,%rcx
1402775dd:	e8 6e 6b 40 00       	call   0x14067e150
1402775e2:	48 8b f0             	mov    %rax,%rsi
1402775e5:	48 85 ff             	test   %rdi,%rdi
1402775e8:	74 27                	je     0x140277611
1402775ea:	8b 4f 10             	mov    0x10(%rdi),%ecx
1402775ed:	ff c9                	dec    %ecx
1402775ef:	89 4f 10             	mov    %ecx,0x10(%rdi)
1402775f2:	85 c9                	test   %ecx,%ecx
1402775f4:	7f 1b                	jg     0x140277611
1402775f6:	0f 88 35 02 00 00    	js     0x140277831
1402775fc:	48 8b 07             	mov    (%rdi),%rax
1402775ff:	ba 01 00 00 00       	mov    $0x1,%edx
140277604:	48 8b cf             	mov    %rdi,%rcx
140277607:	48 8b 00             	mov    (%rax),%rax
14027760a:	ff 15 10 c4 d0 00    	call   *0xd0c410(%rip)        # 0x140f83a20
140277610:	90                   	nop
140277611:	48 b8 f3 d1 75 17 19 	movabs $0x81988191775d1f3,%rax
140277618:	88 19 08
14027761b:	48 3b f0             	cmp    %rax,%rsi
14027761e:	0f 84 37 01 00 00    	je     0x14027775b
140277624:	48 b8 5a 1c 4e 21 70 	movabs $0x31c5f470214e1c5a,%rax
14027762b:	f4 c5 31
14027762e:	48 3b f0             	cmp    %rax,%rsi
140277631:	0f 84 a3 00 00 00    	je     0x1402776da
140277637:	48 b8 d4 21 b6 e2 18 	movabs $0x470bb118e2b621d4,%rax
14027763e:	b1 0b 47
140277641:	48 3b f0             	cmp    %rax,%rsi
140277644:	0f 85 99 01 00 00    	jne    0x1402777e3
14027764a:	4c 8b 05 17 48 1a 01 	mov    0x11a4817(%rip),%r8        # 0x14141be68
140277651:	45 8b 40 0c          	mov    0xc(%r8),%r8d
140277655:	49 8b d7             	mov    %r15,%rdx
140277658:	48 8d 4d e0          	lea    -0x20(%rbp),%rcx
14027765c:	e8 3f b5 0f 00       	call   0x140372ba0
140277661:	48 8b 18             	mov    (%rax),%rbx
140277664:	4c 89 20             	mov    %r12,(%rax)
140277667:	48 89 5d f0          	mov    %rbx,-0x10(%rbp)
14027766b:	49 8b 0e             	mov    (%r14),%rcx
14027766e:	48 89 4d 38          	mov    %rcx,0x38(%rbp)
140277672:	48 85 c9             	test   %rcx,%rcx
140277675:	74 1c                	je     0x140277693
140277677:	8b 41 10             	mov    0x10(%rcx),%eax
14027767a:	ff c0                	inc    %eax
14027767c:	89 41 10             	mov    %eax,0x10(%rcx)
14027767f:	83 f8 01             	cmp    $0x1,%eax
140277682:	0f 8e b4 01 00 00    	jle    0x14027783c
140277688:	3d ff ff ff 7f       	cmp    $0x7fffffff,%eax
14027768d:	0f 84 b1 01 00 00    	je     0x140277844
140277693:	48 8d 55 38          	lea    0x38(%rbp),%rdx
140277697:	48 8d 4d e8          	lea    -0x18(%rbp),%rcx
14027769b:	e8 70 86 f2 ff       	call   0x14019fd10
1402776a0:	48 8b 0d c1 47 1a 01 	mov    0x11a47c1(%rip),%rcx        # 0x14141be68
1402776a7:	4c 8b c0             	mov    %rax,%r8
1402776aa:	8b 51 2c             	mov    0x2c(%rcx),%edx
1402776ad:	48 8b cb             	mov    %rbx,%rcx
1402776b0:	e8 4b d4 4b 00       	call   0x140734b00
1402776b5:	90                   	nop
1402776b6:	48 85 db             	test   %rbx,%rbx
1402776b9:	0f 84 24 01 00 00    	je     0x1402777e3
1402776bf:	8b 43 10             	mov    0x10(%rbx),%eax
1402776c2:	ff c8                	dec    %eax
1402776c4:	89 43 10             	mov    %eax,0x10(%rbx)
1402776c7:	85 c0                	test   %eax,%eax
1402776c9:	0f 8f 14 01 00 00    	jg     0x1402777e3
1402776cf:	0f 88 33 01 00 00    	js     0x140277808
1402776d5:	e9 f4 00 00 00       	jmp    0x1402777ce
1402776da:	4c 8b 05 87 47 1a 01 	mov    0x11a4787(%rip),%r8        # 0x14141be68
1402776e1:	45 8b 40 0c          	mov    0xc(%r8),%r8d
1402776e5:	49 8b d7             	mov    %r15,%rdx
1402776e8:	48 8d 4d e8          	lea    -0x18(%rbp),%rcx
1402776ec:	e8 af b4 0f 00       	call   0x140372ba0