1407ab24f:	48 8d 15 e2 41 88 00 	lea    0x8841e2(%rip),%rdx        # 0x14102f438
1407ab256:	48 8b c8             	mov    %rax,%rcx
1407ab259:	e8 a2 62 f8 ff       	call   0x140731500
1407ab25e:	48 8b d8             	mov    %rax,%rbx
1407ab261:	48 89 5c 24 50       	mov    %rbx,0x50(%rsp)
1407ab266:	48 8d 54 24 50       	lea    0x50(%rsp),%rdx
1407ab26b:	48 8b cf             	mov    %rdi,%rcx
1407ab26e:	e8 4d 92 f8 ff       	call   0x1407344c0
1407ab273:	48 8d 54 24 58       	lea    0x58(%rsp),%rdx
1407ab278:	48 8b cf             	mov    %rdi,%rcx
1407ab27b:	e8 a0 79 f9 ff       	call   0x140742c20
1407ab280:	90                   	nop
1407ab281:	4c 8b 44 24 58       	mov    0x58(%rsp),%r8
1407ab286:	48 8b 56 10          	mov    0x10(%rsi),%rdx
1407ab28a:	48 8b 4e 08          	mov    0x8(%rsi),%rcx
1407ab28e:	e8 5d 9f fa ff       	call   0x1407551f0
1407ab293:	48 85 ff             	test   %rdi,%rdi
1407ab296:	74 23                	je     0x1407ab2bb
1407ab298:	8b 47 10             	mov    0x10(%rdi),%eax
1407ab29b:	ff c8                	dec    %eax
1407ab29d:	89 47 10             	mov    %eax,0x10(%rdi)
1407ab2a0:	85 c0                	test   %eax,%eax
1407ab2a2:	7f 17                	jg     0x1407ab2bb
1407ab2a4:	78 68                	js     0x1407ab30e
1407ab2a6:	48 8b 07             	mov    (%rdi),%rax
1407ab2a9:	ba 01 00 00 00       	mov    $0x1,%edx
1407ab2ae:	48 8b cf             	mov    %rdi,%rcx
1407ab2b1:	48 8b 00             	mov    (%rax),%rax
1407ab2b4:	ff 15 66 87 7d 00    	call   *0x7d8766(%rip)        # 0x140f83a20
1407ab2ba:	90                   	nop
1407ab2bb:	48 8b 4c 24 58       	mov    0x58(%rsp),%rcx
1407ab2c0:	48 85 c9             	test   %rcx,%rcx
1407ab2c3:	74 20                	je     0x1407ab2e5
1407ab2c5:	8b 41 10             	mov    0x10(%rcx),%eax
1407ab2c8:	ff c8                	dec    %eax
1407ab2ca:	89 41 10             	mov    %eax,0x10(%rcx)
1407ab2cd:	85 c0                	test   %eax,%eax
1407ab2cf:	7f 14                	jg     0x1407ab2e5
1407ab2d1:	78 25                	js     0x1407ab2f8
1407ab2d3:	48 8b 01             	mov    (%rcx),%rax
1407ab2d6:	ba 01 00 00 00       	mov    $0x1,%edx
1407ab2db:	48 8b 00             	mov    (%rax),%rax
1407ab2de:	ff 15 3c 87 7d 00    	call   *0x7d873c(%rip)        # 0x140f83a20
1407ab2e4:	90                   	nop
1407ab2e5:	48 8b 46 08          	mov    0x8(%rsi),%rax
1407ab2e9:	c6 80 88 00 00 00 00 	movb   $0x0,0x88(%rax)
1407ab2f0:	48 83 c4 30          	add    $0x30,%rsp
1407ab2f4:	5f                   	pop    %rdi
1407ab2f5:	5e                   	pop    %rsi
1407ab2f6:	5b                   	pop    %rbx
1407ab2f7:	c3                   	ret
1407ab2f8:	b9 02 00 00 00       	mov    $0x2,%ecx
1407ab2fd:	e8 fe f3 fd ff       	call   0x14078a700
1407ab302:	90                   	nop
1407ab303:	b9 02 00 00 00       	mov    $0x2,%ecx
1407ab308:	e8 f3 f3 fd ff       	call   0x14078a700
1407ab30d:	90                   	nop
1407ab30e:	b9 02 00 00 00       	mov    $0x2,%ecx
1407ab313:	e8 e8 f3 fd ff       	call   0x14078a700
1407ab318:	cc                   	int3
1407ab319:	cc                   	int3
1407ab31a:	cc                   	int3
1407ab31b:	cc                   	int3
1407ab31c:	cc                   	int3
1407ab31d:	cc                   	int3
1407ab31e:	cc                   	int3
1407ab31f:	cc                   	int3
1407ab320:	48 89 5c 24 08       	mov    %rbx,0x8(%rsp)
1407ab325:	48 89 6c 24 18       	mov    %rbp,0x18(%rsp)
1407ab32a:	48 89 74 24 20       	mov    %rsi,0x20(%rsp)
1407ab32f:	57                   	push   %rdi
1407ab330:	41 56                	push   %r14
1407ab332:	41 57                	push   %r15
1407ab334:	48 83 ec 20          	sub    $0x20,%rsp
1407ab338:	4c 8b f2             	mov    %rdx,%r14
1407ab33b:	48 8b e9             	mov    %rcx,%rbp
1407ab33e:	48 8b 7a 08          	mov    0x8(%rdx),%rdi
1407ab342:	48 89 7c 24 48       	mov    %rdi,0x48(%rsp)
1407ab347:	48 85 ff             	test   %rdi,%rdi
1407ab34a:	74 1c                	je     0x1407ab368
1407ab34c:	8b 47 10             	mov    0x10(%rdi),%eax
1407ab34f:	ff c0                	inc    %eax
1407ab351:	89 47 10             	mov    %eax,0x10(%rdi)
1407ab354:	83 f8 01             	cmp    $0x1,%eax
1407ab357:	0f 8e 65 01 00 00    	jle    0x1407ab4c2
1407ab35d:	3d ff ff ff 7f       	cmp    $0x7fffffff,%eax
1407ab362:	0f 84 62 01 00 00    	je     0x1407ab4ca
1407ab368:	48 8d 51 30          	lea    0x30(%rcx),%rdx
1407ab36c:	49 8d 4e 08          	lea    0x8(%r14),%rcx
1407ab370:	e8 0b 14 ab ff       	call   0x14025c780
1407ab375:	49 8b 06             	mov    (%r14),%rax
1407ab378:	48 8b d5             	mov    %rbp,%rdx
1407ab37b:	49 8b ce             	mov    %r14,%rcx
1407ab37e:	48 8b 40 08          	mov    0x8(%rax),%rax
1407ab382:	ff 15 98 86 7d 00    	call   *0x7d8698(%rip)        # 0x140f83a20
1407ab388:	83 f8 01             	cmp    $0x1,%eax
1407ab38b:	0f 84 d5 00 00 00    	je     0x1407ab466
1407ab391:	83 f8 02             	cmp    $0x2,%eax
1407ab394:	0f 84 d8 00 00 00    	je     0x1407ab472
1407ab39a:	83 7d 38 00          	cmpl   $0x0,0x38(%rbp)
1407ab39e:	75 5a                	jne    0x1407ab3fa
1407ab3a0:	48 8b 4d 30          	mov    0x30(%rbp),%rcx
1407ab3a4:	48 85 c9             	test   %rcx,%rcx
1407ab3a7:	74 51                	je     0x1407ab3fa
1407ab3a9:	49 8b d6             	mov    %r14,%rdx
1407ab3ac:	e8 5f 15 fc ff       	call   0x14076c910
1407ab3b1:	83 f8 01             	cmp    $0x1,%eax
1407ab3b4:	0f 84 ac 00 00 00    	je     0x1407ab466
1407ab3ba:	83 f8 02             	cmp    $0x2,%eax
1407ab3bd:	0f 84 af 00 00 00    	je     0x1407ab472
1407ab3c3:	48 8b 5d 18          	mov    0x18(%rbp),%rbx
1407ab3c7:	48 8b 75 20          	mov    0x20(%rbp),%rsi
1407ab3cb:	48 3b de             	cmp    %rsi,%rbx
1407ab3ce:	74 2a                	je     0x1407ab3fa
1407ab3d0:	48 8b 0b             	mov    (%rbx),%rcx
1407ab3d3:	48 8b 01             	mov    (%rcx),%rax
1407ab3d6:	49 8b d6             	mov    %r14,%rdx
1407ab3d9:	48 8b 40 58          	mov    0x58(%rax),%rax
1407ab3dd:	ff 15 3d 86 7d 00    	call   *0x7d863d(%rip)        # 0x140f83a20
1407ab3e3:	83 f8 01             	cmp    $0x1,%eax
1407ab3e6:	74 7e                	je     0x1407ab466
1407ab3e8:	83 f8 02             	cmp    $0x2,%eax
1407ab3eb:	0f 84 81 00 00 00    	je     0x1407ab472
1407ab3f1:	48 83 c3 28          	add    $0x28,%rbx
1407ab3f5:	48 3b de             	cmp    %rsi,%rbx
1407ab3f8:	75 d6                	jne    0x1407ab3d0
1407ab3fa:	49 8b 06             	mov    (%r14),%rax
1407ab3fd:	48 8b d5             	mov    %rbp,%rdx
1407ab400:	49 8b ce             	mov    %r14,%rcx
1407ab403:	48 8b 40 10          	mov    0x10(%rax),%rax
1407ab407:	ff 15 13 86 7d 00    	call   *0x7d8613(%rip)        # 0x140f83a20
1407ab40d:	8b d8                	mov    %eax,%ebx
1407ab40f:	48 85 ff             	test   %rdi,%rdi
1407ab412:	74 1c                	je     0x1407ab430
1407ab414:	8b 47 10             	mov    0x10(%rdi),%eax
1407ab417:	ff c0                	inc    %eax
1407ab419:	89 47 10             	mov    %eax,0x10(%rdi)
1407ab41c:	83 f8 01             	cmp    $0x1,%eax
1407ab41f:	0f 8e b0 00 00 00    	jle    0x1407ab4d5
1407ab425:	3d ff ff ff 7f       	cmp    $0x7fffffff,%eax
1407ab42a:	0f 84 ad 00 00 00    	je     0x1407ab4dd
1407ab430:	49 8b 4e 08          	mov    0x8(%r14),%rcx
1407ab434:	49 89 7e 08          	mov    %rdi,0x8(%r14)
1407ab438:	48 85 c9             	test   %rcx,%rcx
1407ab43b:	74 24                	je     0x1407ab461
1407ab43d:	8b 41 10             	mov    0x10(%rcx),%eax
1407ab440:	ff c8                	dec    %eax
1407ab442:	89 41 10             	mov    %eax,0x10(%rcx)
1407ab445:	85 c0                	test   %eax,%eax
1407ab447:	7f 18                	jg     0x1407ab461
1407ab449:	0f 88 99 00 00 00    	js     0x1407ab4e8
1407ab44f:	48 8b 01             	mov    (%rcx),%rax
1407ab452:	ba 01 00 00 00       	mov    $0x1,%edx
1407ab457:	48 8b 00             	mov    (%rax),%rax
1407ab45a:	ff 15 c0 85 7d 00    	call   *0x7d85c0(%rip)        # 0x140f83a20
1407ab460:	90                   	nop
1407ab461:	83 fb 01             	cmp    $0x1,%ebx
1407ab464:	75 07                	jne    0x1407ab46d
1407ab466:	bb 01 00 00 00       	mov    $0x1,%ebx
1407ab46b:	eb 07                	jmp    0x1407ab474
1407ab46d:	83 fb 02             	cmp    $0x2,%ebx
1407ab470:	75 02                	jne    0x1407ab474
1407ab472:	33 db                	xor    %ebx,%ebx
1407ab474:	48 85 ff             	test   %rdi,%rdi
1407ab477:	74 23                	je     0x1407ab49c
1407ab479:	8b 47 10             	mov    0x10(%rdi),%eax
1407ab47c:	ff c8                	dec    %eax
1407ab47e:	89 47 10             	mov    %eax,0x10(%rdi)
1407ab481:	85 c0                	test   %eax,%eax
1407ab483:	7f 17                	jg     0x1407ab49c
1407ab485:	78 30                	js     0x1407ab4b7
1407ab487:	48 8b 17             	mov    (%rdi),%rdx
1407ab48a:	48 8b 02             	mov    (%rdx),%rax
1407ab48d:	ba 01 00 00 00       	mov    $0x1,%edx
1407ab492:	48 8b cf             	mov    %rdi,%rcx
1407ab495:	ff 15 85 85 7d 00    	call   *0x7d8585(%rip)        # 0x140f83a20
1407ab49b:	90                   	nop
1407ab49c:	8b c3                	mov    %ebx,%eax
1407ab49e:	48 8b 5c 24 40       	mov    0x40(%rsp),%rbx
1407ab4a3:	48 8b 6c 24 50       	mov    0x50(%rsp),%rbp
1407ab4a8:	48 8b 74 24 58       	mov    0x58(%rsp),%rsi
1407ab4ad:	48 83 c4 20          	add    $0x20,%rsp
1407ab4b1:	41 5f                	pop    %r15
1407ab4b3:	41 5e                	pop    %r14
1407ab4b5:	5f                   	pop    %rdi
1407ab4b6:	c3                   	ret
1407ab4b7:	b9 02 00 00 00       	mov    $0x2,%ecx
1407ab4bc:	e8 3f f2 fd ff       	call   0x14078a700
1407ab4c1:	90                   	nop
1407ab4c2:	33 c9                	xor    %ecx,%ecx
1407ab4c4:	e8 37 f2 fd ff       	call   0x14078a700
1407ab4c9:	cc                   	int3
1407ab4ca:	b9 01 00 00 00       	mov    $0x1,%ecx
1407ab4cf:	e8 2c f2 fd ff       	call   0x14078a700
1407ab4d4:	90                   	nop
1407ab4d5:	33 c9                	xor    %ecx,%ecx
1407ab4d7:	e8 24 f2 fd ff       	call   0x14078a700
1407ab4dc:	cc                   	int3
1407ab4dd:	b9 01 00 00 00       	mov    $0x1,%ecx
1407ab4e2:	e8 19 f2 fd ff       	call   0x14078a700
1407ab4e7:	90                   	nop
1407ab4e8:	b9 02 00 00 00       	mov    $0x2,%ecx
1407ab4ed:	e8 0e f2 fd ff       	call   0x14078a700
1407ab4f2:	cc                   	int3
1407ab4f3:	cc                   	int3
1407ab4f4:	cc                   	int3
1407ab4f5:	cc                   	int3
1407ab4f6:	cc                   	int3
1407ab4f7:	cc                   	int3
1407ab4f8:	cc                   	int3
1407ab4f9:	cc                   	int3
1407ab4fa:	cc                   	int3
1407ab4fb:	cc                   	int3
1407ab4fc:	cc                   	int3
1407ab4fd:	cc                   	int3
1407ab4fe:	cc                   	int3
1407ab4ff:	cc                   	int3
1407ab500:	40 56                	rex push %rsi
1407ab502:	41 57                	push   %r15
1407ab504:	48 83 ec 28          	sub    $0x28,%rsp
1407ab508:	49 bf 66 66 66 66 66 	movabs $0x666666666666666,%r15
1407ab50f:	66 66 06
1407ab512:	4c 8b c2             	mov    %rdx,%r8
1407ab515:	48 8b f1             	mov    %rcx,%rsi
1407ab518:	49 3b d7             	cmp    %r15,%rdx
1407ab51b:	0f 87 6c 01 00 00    	ja     0x1407ab68d
1407ab521:	48 89 5c 24 40       	mov    %rbx,0x40(%rsp)
1407ab526:	48 8b 19             	mov    (%rcx),%rbx
1407ab529:	48 8b 49 10          	mov    0x10(%rcx),%rcx
1407ab52d:	48 2b cb             	sub    %rbx,%rcx
1407ab530:	48 89 7c 24 50       	mov    %rdi,0x50(%rsp)
1407ab535:	4c 89 64 24 58       	mov    %r12,0x58(%rsp)
1407ab53a:	49 bc 67 66 66 66 66 	movabs $0x6666666666666667,%r12
1407ab541:	66 66 66
1407ab544:	49 8b c4             	mov    %r12,%rax
1407ab547:	4c 89 74 24 20       	mov    %r14,0x20(%rsp)
1407ab54c:	48 f7 e9             	imul   %rcx
1407ab54f:	48 c1 fa 04          	sar    $0x4,%rdx
1407ab553:	48 8b c2             	mov    %rdx,%rax
1407ab556:	48 c1 e8 3f          	shr    $0x3f,%rax
1407ab55a:	48 03 d0             	add    %rax,%rdx
1407ab55d:	49 8b c7             	mov    %r15,%rax
1407ab560:	48 8b ca             	mov    %rdx,%rcx
1407ab563:	48 d1 e9             	shr    $1,%rcx
1407ab566:	48 2b c1             	sub    %rcx,%rax
1407ab569:	48 3b d0             	cmp    %rax,%rdx
1407ab56c:	76 05                	jbe    0x1407ab573
1407ab56e:	4d 8b f7             	mov    %r15,%r14
1407ab571:	eb 0b                	jmp    0x1407ab57e
1407ab573:	4c 8d 34 11          	lea    (%rcx,%rdx,1),%r14
1407ab577:	4d 3b f0             	cmp    %r8,%r14
1407ab57a:	4d 0f 42 f0          	cmovb  %r8,%r14
1407ab57e:	33 ff                	xor    %edi,%edi
1407ab580:	48 85 db             	test   %rbx,%rbx
1407ab583:	0f 84 82 00 00 00    	je     0x1407ab60b
1407ab589:	48 89 6c 24 48       	mov    %rbp,0x48(%rsp)
1407ab58e:	48 8b 6e 08          	mov    0x8(%rsi),%rbp
1407ab592:	48 3b dd             	cmp    %rbp,%rbx
1407ab595:	74 11                	je     0x1407ab5a8
1407ab597:	48 8b cb             	mov    %rbx,%rcx
1407ab59a:	e8 d1 0e ab ff       	call   0x14025c470
1407ab59f:	48 83 c3 28          	add    $0x28,%rbx
1407ab5a3:	48 3b dd             	cmp    %rbp,%rbx
1407ab5a6:	75 ef                	jne    0x1407ab597
1407ab5a8:	4c 8b 06             	mov    (%rsi),%r8
1407ab5ab:	49 8b c4             	mov    %r12,%rax
1407ab5ae:	48 8b 4e 10          	mov    0x10(%rsi),%rcx
1407ab5b2:	48 8b 6c 24 48       	mov    0x48(%rsp),%rbp
1407ab5b7:	49 2b c8             	sub    %r8,%rcx
1407ab5ba:	48 f7 e9             	imul   %rcx
1407ab5bd:	48 c1 fa 04          	sar    $0x4,%rdx
1407ab5c1:	48 8b c2             	mov    %rdx,%rax
1407ab5c4:	48 c1 e8 3f          	shr    $0x3f,%rax
1407ab5c8:	48 03 d0             	add    %rax,%rdx
1407ab5cb:	48 8d 14 92          	lea    (%rdx,%rdx,4),%rdx
1407ab5cf:	48 c1 e2 03          	shl    $0x3,%rdx
1407ab5d3:	48 81 fa 00 10 00 00 	cmp    $0x1000,%rdx
1407ab5da:	72 1c                	jb     0x1407ab5f8
1407ab5dc:	49 8b 48 f8          	mov    -0x8(%r8),%rcx
1407ab5e0:	48 83 c2 27          	add    $0x27,%rdx
1407ab5e4:	4c 2b c1             	sub    %rcx,%r8
1407ab5e7:	49 8d 40 f8          	lea    -0x8(%r8),%rax
1407ab5eb:	48 83 f8 1f          	cmp    $0x1f,%rax
1407ab5ef:	0f 87 8c 00 00 00    	ja     0x1407ab681
1407ab5f5:	4c 8b c1             	mov    %rcx,%r8
1407ab5f8:	49 8b c8             	mov    %r8,%rcx
1407ab5fb:	e8 44 fb 66 00       	call   0x140e1b144
1407ab600:	48 89 3e             	mov    %rdi,(%rsi)
1407ab603:	48 89 7e 08          	mov    %rdi,0x8(%rsi)
1407ab607:	48 89 7e 10          	mov    %rdi,0x10(%rsi)
1407ab60b:	4d 3b f7             	cmp    %r15,%r14
1407ab60e:	77 77                	ja     0x1407ab687
1407ab610:	4b 8d 04 b6          	lea    (%r14,%r14,4),%rax
1407ab614:	48 8d 1c c5 00 00 00 	lea    0x0(,%rax,8),%rbx
1407ab61b:	00
1407ab61c:	48 85 db             	test   %rbx,%rbx
1407ab61f:	74 35                	je     0x1407ab656
1407ab621:	48 81 fb 00 10 00 00 	cmp    $0x1000,%rbx
1407ab628:	72 21                	jb     0x1407ab64b
1407ab62a:	48 8d 4b 27          	lea    0x27(%rbx),%rcx
1407ab62e:	48 3b cb             	cmp    %rbx,%rcx
1407ab631:	76 54                	jbe    0x1407ab687
1407ab633:	e8 d0 fa 66 00       	call   0x140e1b108
1407ab638:	48 85 c0             	test   %rax,%rax
1407ab63b:	74 44                	je     0x1407ab681
1407ab63d:	48 8d 78 27          	lea    0x27(%rax),%rdi
1407ab641:	48 83 e7 e0          	and    $0xffffffffffffffe0,%rdi
1407ab645:	48 89 47 f8          	mov    %rax,-0x8(%rdi)
1407ab649:	eb 0b                	jmp    0x1407ab656
1407ab64b:	48 8b cb             	mov    %rbx,%rcx
1407ab64e:	e8 b5 fa 66 00       	call   0x140e1b108
1407ab653:	48 8b f8             	mov    %rax,%rdi
1407ab656:	4c 8b 64 24 58       	mov    0x58(%rsp),%r12
1407ab65b:	48 8d 04 3b          	lea    (%rbx,%rdi,1),%rax
1407ab65f:	48 8b 5c 24 40       	mov    0x40(%rsp),%rbx
1407ab664:	4c 8b 74 24 20       	mov    0x20(%rsp),%r14
1407ab669:	48 89 3e             	mov    %rdi,(%rsi)
1407ab66c:	48 89 7e 08          	mov    %rdi,0x8(%rsi)
1407ab670:	48 8b 7c 24 50       	mov    0x50(%rsp),%rdi
1407ab675:	48 89 46 10          	mov    %rax,0x10(%rsi)
1407ab679:	48 83 c4 28          	add    $0x28,%rsp
1407ab67d:	41 5f                	pop    %r15
1407ab67f:	5e                   	pop    %rsi
1407ab680:	c3                   	ret
1407ab681:	e8 1e eb 67 00       	call   0x140e2a1a4
1407ab686:	cc                   	int3
1407ab687:	e8 04 1b 9f ff       	call   0x14019d190
1407ab68c:	cc                   	int3
1407ab68d:	e8 fe 1e 9f ff       	call   0x14019d590
1407ab692:	cc                   	int3
1407ab693:	cc                   	int3
1407ab694:	cc                   	int3
1407ab695:	cc                   	int3
1407ab696:	cc                   	int3
1407ab697:	cc                   	int3
1407ab698:	cc                   	int3
1407ab699:	cc                   	int3
1407ab69a:	cc                   	int3
1407ab69b:	cc                   	int3
1407ab69c:	cc                   	int3
1407ab69d:	cc                   	int3
1407ab69e:	cc                   	int3
1407ab69f:	cc                   	int3
1407ab6a0:	48 89 5c 24 08       	mov    %rbx,0x8(%rsp)
1407ab6a5:	48 89 6c 24 10       	mov    %rbp,0x10(%rsp)
1407ab6aa:	48 89 74 24 18       	mov    %rsi,0x18(%rsp)
1407ab6af:	48 89 7c 24 20       	mov    %rdi,0x20(%rsp)
1407ab6b4:	41 56                	push   %r14
1407ab6b6:	48 83 ec 20          	sub    $0x20,%rsp
1407ab6ba:	48 8b 1a             	mov    (%rdx),%rbx