140039343:	5b                   	pop    %rbx
140039344:	5f                   	pop    %rdi
140039345:	5e                   	pop    %rsi
140039346:	41 5c                	pop    %r12
140039348:	41 5d                	pop    %r13
14003934a:	41 5e                	pop    %r14
14003934c:	41 5f                	pop    %r15
14003934e:	c3                   	ret
14003934f:	48 8d 4f 10          	lea    0x10(%rdi),%rcx
140039353:	48 8b 57 10          	mov    0x10(%rdi),%rdx
140039357:	48 89 13             	mov    %rdx,(%rbx)
14003935a:	48 89 5f 10          	mov    %rbx,0x10(%rdi)
14003935e:	4a 89 0c f8          	mov    %rcx,(%rax,%r15,8)
140039362:	48 8b 03             	mov    (%rbx),%rax
140039365:	48 85 c0             	test   %rax,%rax
140039368:	74 c6                	je     0x140039330
14003936a:	48 8b 40 08          	mov    0x8(%rax),%rax
14003936e:	49 8d 4d ff          	lea    -0x1(%r13),%rcx
140039372:	49 85 cd             	test   %rcx,%r13
140039375:	75 0c                	jne    0x140039383
140039377:	48 21 c8             	and    %rcx,%rax
14003937a:	48 8b 0f             	mov    (%rdi),%rcx
14003937d:	48 89 1c c1          	mov    %rbx,(%rcx,%rax,8)
140039381:	eb ad                	jmp    0x140039330
140039383:	4c 39 e8             	cmp    %r13,%rax
140039386:	72 f2                	jb     0x14003937a
140039388:	48 89 c1             	mov    %rax,%rcx
14003938b:	4c 09 e9             	or     %r13,%rcx
14003938e:	48 c1 e9 20          	shr    $0x20,%rcx
140039392:	74 50                	je     0x1400393e4
140039394:	31 d2                	xor    %edx,%edx
140039396:	49 f7 f5             	div    %r13
140039399:	48 89 d0             	mov    %rdx,%rax
14003939c:	eb dc                	jmp    0x14003937a
14003939e:	48 89 c1             	mov    %rax,%rcx
1400393a1:	e8 9a 0b 02 00       	call   0x140059f40
1400393a6:	49 39 c7             	cmp    %rax,%r15
1400393a9:	4c 0f 46 f8          	cmovbe %rax,%r15
1400393ad:	4d 39 e7             	cmp    %r12,%r15
1400393b0:	0f 82 2b ff ff ff    	jb     0x1400392e1
1400393b6:	e9 31 ff ff ff       	jmp    0x1400392ec
1400393bb:	0f 83 2b ff ff ff    	jae    0x1400392ec
1400393c1:	48 8b 47 18          	mov    0x18(%rdi),%rax
1400393c5:	48 85 c0             	test   %rax,%rax
1400393c8:	79 23                	jns    0x1400393ed
1400393ca:	48 89 c1             	mov    %rax,%rcx
1400393cd:	48 d1 e9             	shr    $1,%rcx
1400393d0:	83 e0 01             	and    $0x1,%eax
1400393d3:	48 09 c8             	or     %rcx,%rax
1400393d6:	0f 57 c0             	xorps  %xmm0,%xmm0
1400393d9:	f3 48 0f 2a c0       	cvtsi2ss %rax,%xmm0
1400393de:	f3 0f 58 c0          	addss  %xmm0,%xmm0
1400393e2:	eb 11                	jmp    0x1400393f5
1400393e4:	31 d2                	xor    %edx,%edx
1400393e6:	41 f7 f5             	div    %r13d
1400393e9:	89 d0                	mov    %edx,%eax
1400393eb:	eb 8d                	jmp    0x14003937a
1400393ed:	0f 57 c0             	xorps  %xmm0,%xmm0
1400393f0:	f3 48 0f 2a c0       	cvtsi2ss %rax,%xmm0
1400393f5:	f3 0f 5e 47 20       	divss  0x20(%rdi),%xmm0
1400393fa:	e8 11 3a 06 00       	call   0x14009ce10
1400393ff:	f3 48 0f 2c c8       	cvttss2si %xmm0,%rcx
140039404:	48 89 ca             	mov    %rcx,%rdx
140039407:	f3 0f 5c 05 d1 3c 0b 	subss  0xb3cd1(%rip),%xmm0        # 0x1400ed0e0
14003940e:	00
14003940f:	f3 48 0f 2c c0       	cvttss2si %xmm0,%rax
140039414:	48 c1 fa 3f          	sar    $0x3f,%rdx
140039418:	48 21 d0             	and    %rdx,%rax
14003941b:	48 09 c8             	or     %rcx,%rax
14003941e:	49 83 fc 03          	cmp    $0x3,%r12
140039422:	0f 82 76 ff ff ff    	jb     0x14003939e
140039428:	4c 89 e1             	mov    %r12,%rcx
14003942b:	48 d1 e9             	shr    $1,%rcx
14003942e:	48 ba 55 55 55 55 55 	movabs $0x5555555555555555,%rdx
140039435:	55 55 55
140039438:	48 21 ca             	and    %rcx,%rdx
14003943b:	4c 89 e1             	mov    %r12,%rcx
14003943e:	48 29 d1             	sub    %rdx,%rcx
140039441:	48 ba 33 33 33 33 33 	movabs $0x3333333333333333,%rdx
140039448:	33 33 33
14003944b:	49 89 c8             	mov    %rcx,%r8
14003944e:	49 c1 e8 02          	shr    $0x2,%r8
140039452:	48 21 d1             	and    %rdx,%rcx
140039455:	49 21 d0             	and    %rdx,%r8
140039458:	49 01 c8             	add    %rcx,%r8
14003945b:	4c 89 c1             	mov    %r8,%rcx
14003945e:	48 c1 e9 04          	shr    $0x4,%rcx
140039462:	4c 01 c1             	add    %r8,%rcx
140039465:	48 ba 0f 0f 0f 0f 0f 	movabs $0xf0f0f0f0f0f0f0f,%rdx
14003946c:	0f 0f 0f
14003946f:	48 21 ca             	and    %rcx,%rdx
140039472:	48 b9 01 01 01 01 01 	movabs $0x101010101010101,%rcx
140039479:	01 01 01
14003947c:	48 0f af ca          	imul   %rdx,%rcx
140039480:	48 c1 e9 38          	shr    $0x38,%rcx
140039484:	83 f9 01             	cmp    $0x1,%ecx
140039487:	0f 87 11 ff ff ff    	ja     0x14003939e
14003948d:	48 83 f8 02          	cmp    $0x2,%rax
140039491:	0f 82 0f ff ff ff    	jb     0x1400393a6
140039497:	48 ff c8             	dec    %rax
14003949a:	48 0f bd c8          	bsr    %rax,%rcx
14003949e:	83 f1 3f             	xor    $0x3f,%ecx
1400394a1:	f6 d9                	neg    %cl
1400394a3:	b8 01 00 00 00       	mov    $0x1,%eax
1400394a8:	48 d3 e0             	shl    %cl,%rax
1400394ab:	e9 f6 fe ff ff       	jmp    0x1400393a6
1400394b0:	0f 0b                	ud2
1400394b2:	cc                   	int3
1400394b3:	cc                   	int3
1400394b4:	cc                   	int3
1400394b5:	cc                   	int3
1400394b6:	cc                   	int3
1400394b7:	cc                   	int3
1400394b8:	cc                   	int3
1400394b9:	cc                   	int3
1400394ba:	cc                   	int3
1400394bb:	cc                   	int3
1400394bc:	cc                   	int3
1400394bd:	cc                   	int3
1400394be:	cc                   	int3
1400394bf:	cc                   	int3
1400394c0:	41 57                	push   %r15
1400394c2:	41 56                	push   %r14
1400394c4:	41 55                	push   %r13
1400394c6:	41 54                	push   %r12
1400394c8:	56                   	push   %rsi
1400394c9:	57                   	push   %rdi
1400394ca:	55                   	push   %rbp
1400394cb:	53                   	push   %rbx
1400394cc:	48 83 ec 58          	sub    $0x58,%rsp
1400394d0:	48 8b 05 69 7b 0c 00 	mov    0xc7b69(%rip),%rax        # 0x140101040
1400394d7:	48 31 e0             	xor    %rsp,%rax
1400394da:	48 89 44 24 50       	mov    %rax,0x50(%rsp)
1400394df:	48 83 fa 01          	cmp    $0x1,%rdx
1400394e3:	44 8b 71 18          	mov    0x18(%rcx),%r14d
1400394e7:	49 11 d6             	adc    %rdx,%r14
1400394ea:	49 39 d6             	cmp    %rdx,%r14
1400394ed:	0f 82 a2 04 00 00    	jb     0x140039995
1400394f3:	48 89 ce             	mov    %rcx,%rsi
1400394f6:	49 0f bd c6          	bsr    %r14,%rax
1400394fa:	ba 7f 00 00 00       	mov    $0x7f,%edx
1400394ff:	48 0f 45 d0          	cmovne %rax,%rdx
140039503:	48 83 f2 c0          	xor    $0xffffffffffffffc0,%rdx
140039507:	48 8d 05 9a 75 0b 00 	lea    0xb759a(%rip),%rax        # 0x1400f0aa8
14003950e:	0f b6 4c 02 41       	movzbl 0x41(%rdx,%rax,1),%ecx
140039513:	4c 89 f0             	mov    %r14,%rax
140039516:	48 d3 e8             	shr    %cl,%rax
140039519:	48 83 c2 41          	add    $0x41,%rdx
14003951d:	83 e0 07             	and    $0x7,%eax
140039520:	8d 0c d5 00 00 00 00 	lea    0x0(,%rdx,8),%ecx
140039527:	4c 8d 05 c2 75 0b 00 	lea    0xb75c2(%rip),%r8        # 0x1400f0af0
14003952e:	4a 8b 0c 01          	mov    (%rcx,%r8,1),%rcx
140039532:	4c 21 f1             	and    %r14,%rcx
140039535:	8d 04 d0             	lea    (%rax,%rdx,8),%eax
140039538:	48 83 f9 01          	cmp    $0x1,%rcx
14003953c:	83 d8 ff             	sbb    $0xffffffff,%eax
14003953f:	01 c0                	add    %eax,%eax
140039541:	80 3e 00             	cmpb   $0x0,(%rsi)
140039544:	48 8d 0d 45 6d 0b 00 	lea    0xb6d45(%rip),%rcx        # 0x1400f0290
14003954b:	0f b7 bc 08 00 04 00 	movzwl 0x400(%rax,%rcx,1),%edi
140039552:	00
140039553:	75 1a                	jne    0x14003956f
140039555:	49 81 fe 81 00 00 00 	cmp    $0x81,%r14
14003955c:	0f 93 c0             	setae  %al
14003955f:	66 83 ff 6e          	cmp    $0x6e,%di
140039563:	0f 92 c1             	setb   %cl
140039566:	20 c1                	and    %al,%cl
140039568:	0f b6 c1             	movzbl %cl,%eax
14003956b:	09 f8                	or     %edi,%eax
14003956d:	89 c7                	mov    %eax,%edi
14003956f:	c6 44 24 47 00       	movb   $0x0,0x47(%rsp)
140039574:	80 7e 01 01          	cmpb   $0x1,0x1(%rsi)
140039578:	0f 85 65 02 00 00    	jne    0x1400397e3
14003957e:	8b 05 94 61 0d 00    	mov    0xd6194(%rip),%eax        # 0x14010f718
140039584:	65 48 8b 0c 25 58 00 	mov    %gs:0x58,%rcx
14003958b:	00 00
14003958d:	48 8b 04 c1          	mov    (%rcx,%rax,8),%rax
140039591:	80 b8 20 01 00 00 00 	cmpb   $0x0,0x120(%rax)
140039598:	75 05                	jne    0x14003959f
14003959a:	e8 f9 4d 03 00       	call   0x14006e398
14003959f:	8b 05 73 61 0d 00    	mov    0xd6173(%rip),%eax        # 0x14010f718
1400395a5:	65 48 8b 0c 25 58 00 	mov    %gs:0x58,%rcx
1400395ac:	00 00
1400395ae:	48 8b 04 c1          	mov    (%rcx,%rax,8),%rax
1400395b2:	48 8b 98 68 01 00 00 	mov    0x168(%rax),%rbx
1400395b9:	48 83 fb 01          	cmp    $0x1,%rbx
1400395bd:	0f 86 0b 02 00 00    	jbe    0x1400397ce
1400395c3:	48 83 fb 02          	cmp    $0x2,%rbx
1400395c7:	0f 82 16 02 00 00    	jb     0x1400397e3
1400395cd:	48 ff 43 08          	incq   0x8(%rbx)
1400395d1:	44 0f b7 ff          	movzwl %di,%r15d
1400395d5:	66 3b 3d a4 a0 0c 00 	cmp    0xca0a4(%rip),%di        # 0x140103680
1400395dc:	0f 87 f0 00 00 00    	ja     0x1400396d2
1400395e2:	44 89 f8             	mov    %r15d,%eax
1400395e5:	c1 e0 04             	shl    $0x4,%eax
1400395e8:	4c 8d 24 03          	lea    (%rbx,%rax,1),%r12
1400395ec:	49 83 c4 78          	add    $0x78,%r12
1400395f0:	48 8b 7c 03 78       	mov    0x78(%rbx,%rax,1),%rdi
1400395f5:	48 85 ff             	test   %rdi,%rdi
1400395f8:	0f 84 b2 00 00 00    	je     0x1400396b0
1400395fe:	48 ff 43 10          	incq   0x10(%rbx)
140039602:	48 89 d9             	mov    %rbx,%rcx
140039605:	e8 26 6f 00 00       	call   0x140040530
14003960a:	45 0f b7 44 24 0a    	movzwl 0xa(%r12),%r8d
140039610:	48 8b 08             	mov    (%rax),%rcx
140039613:	4c 8b 49 28          	mov    0x28(%rcx),%r9
140039617:	48 89 c1             	mov    %rax,%rcx
14003961a:	48 89 fa             	mov    %rdi,%rdx
14003961d:	4c 89 c8             	mov    %r9,%rax
140039620:	ff 15 e2 d6 0b 00    	call   *0xbd6e2(%rip)        # 0x1400f6d08
140039626:	41 fe 4c 24 08       	decb   0x8(%r12)
14003962b:	49 89 04 24          	mov    %rax,(%r12)
14003962f:	45 0f b7 64 24 0a    	movzwl 0xa(%r12),%r12d
140039635:	44 29 23             	sub    %r12d,(%rbx)
140039638:	8b 46 18             	mov    0x18(%rsi),%eax
14003963b:	4d 89 e6             	mov    %r12,%r14
14003963e:	49 29 c6             	sub    %rax,%r14
140039641:	48 ff 43 58          	incq   0x58(%rbx)
140039645:	4c 01 73 60          	add    %r14,0x60(%rbx)
140039649:	80 7e 02 01          	cmpb   $0x1,0x2(%rsi)
14003964d:	75 17                	jne    0x140039666
14003964f:	48 89 f8             	mov    %rdi,%rax
140039652:	48 c1 e0 34          	shl    $0x34,%rax
140039656:	74 39                	je     0x140039691
140039658:	49 8d 04 3c          	lea    (%r12,%rdi,1),%rax
14003965c:	48 83 c0 fc          	add    $0xfffffffffffffffc,%rax
140039660:	c7 00 01 00 00 00    	movl   $0x1,(%rax)
140039666:	48 8b 4c 24 50       	mov    0x50(%rsp),%rcx
14003966b:	48 31 e1             	xor    %rsp,%rcx
14003966e:	48 3b 0d cb 79 0c 00 	cmp    0xc79cb(%rip),%rcx        # 0x140101040
140039675:	74 06                	je     0x14003967d
140039677:	e8 54 5c 03 00       	call   0x14006f2d0
14003967c:	cc                   	int3
14003967d:	48 89 f8             	mov    %rdi,%rax
140039680:	48 83 c4 58          	add    $0x58,%rsp
140039684:	5b                   	pop    %rbx
140039685:	5d                   	pop    %rbp
140039686:	5f                   	pop    %rdi
140039687:	5e                   	pop    %rsi
140039688:	41 5c                	pop    %r12
14003968a:	41 5d                	pop    %r13
14003968c:	41 5e                	pop    %r14
14003968e:	41 5f                	pop    %r15
140039690:	c3                   	ret
140039691:	48 89 f8             	mov    %rdi,%rax
140039694:	48 25 00 00 e0 ff    	and    $0xffffffffffe00000,%rax
14003969a:	89 f9                	mov    %edi,%ecx
14003969c:	c1 e9 09             	shr    $0x9,%ecx
14003969f:	81 e1 f8 0f 00 00    	and    $0xff8,%ecx
1400396a5:	48 01 c8             	add    %rcx,%rax
1400396a8:	48 05 00 20 00 00    	add    $0x2000,%rax
1400396ae:	eb b0                	jmp    0x140039660
1400396b0:	48 ff 43 20          	incq   0x20(%rbx)
1400396b4:	48 ff 43 18          	incq   0x18(%rbx)
1400396b8:	48 89 d9             	mov    %rbx,%rcx
1400396bb:	4c 89 fa             	mov    %r15,%rdx
1400396be:	e8 fd 7b 00 00       	call   0x1400412c0
1400396c3:	49 8b 3c 24          	mov    (%r12),%rdi
1400396c7:	48 85 ff             	test   %rdi,%rdi
1400396ca:	0f 85 32 ff ff ff    	jne    0x140039602
1400396d0:	eb 08                	jmp    0x1400396da
1400396d2:	48 ff 43 28          	incq   0x28(%rbx)
1400396d6:	48 ff 43 18          	incq   0x18(%rbx)
1400396da:	4b 8d 04 7f          	lea    (%r15,%r15,2),%rax
1400396de:	c1 e0 04             	shl    $0x4,%eax
1400396e1:	4c 8d 2c 06          	lea    (%rsi,%rax,1),%r13
1400396e5:	49 83 c5 48          	add    $0x48,%r13
1400396e9:	4c 8d 7e 40          	lea    0x40(%rsi),%r15
1400396ed:	4c 89 f9             	mov    %r15,%rcx
1400396f0:	ff 15 1a e2 0b 00    	call   *0xbe21a(%rip)        # 0x1400f7910
1400396f6:	84 c0                	test   %al,%al
1400396f8:	75 08                	jne    0x140039702
1400396fa:	4c 89 f9             	mov    %r15,%rcx
1400396fd:	e8 7e 82 00 00       	call   0x140041980
140039702:	4d 8b 65 00          	mov    0x0(%r13),%r12
140039706:	4c 89 64 24 48       	mov    %r12,0x48(%rsp)
14003970b:	49 8b 3c 24          	mov    (%r12),%rdi
14003970f:	48 85 ff             	test   %rdi,%rdi
140039712:	0f 84 bc 01 00 00    	je     0x1400398d4
140039718:	c6 44 24 47 00       	movb   $0x0,0x47(%rsp)
14003971d:	45 8b 75 18          	mov    0x18(%r13),%r14d
140039721:	8b 6e 18             	mov    0x18(%rsi),%ebp
140039724:	4c 89 e1             	mov    %r12,%rcx
140039727:	e8 04 a4 00 00       	call   0x140043b30
14003972c:	84 c0                	test   %al,%al
14003972e:	0f 84 83 02 00 00    	je     0x1400399b7
140039734:	49 29 ee             	sub    %rbp,%r14
140039737:	4c 89 e0             	mov    %r12,%rax
14003973a:	48 25 00 f0 ff ff    	and    $0xfffffffffffff000,%rax
140039740:	48 8b 00             	mov    (%rax),%rax
140039743:	48 8d 15 3e 6b 0b 00 	lea    0xb6b3e(%rip),%rdx        # 0x1400f0288
14003974a:	48 8d 0d 2f 6b 0b 00 	lea    0xb6b2f(%rip),%rcx        # 0x1400f0280
140039751:	80 78 14 00          	cmpb   $0x0,0x14(%rax)
140039755:	48 0f 45 ca          	cmovne %rdx,%rcx
140039759:	45 8b 45 18          	mov    0x18(%r13),%r8d
14003975d:	49 8b 14 24          	mov    (%r12),%rdx
140039761:	48 8b 01             	mov    (%rcx),%rax
140039764:	48 8b 40 40          	mov    0x40(%rax),%rax
140039768:	ff 15 9a d5 0b 00    	call   *0xbd59a(%rip)        # 0x1400f6d08
14003976e:	49 89 04 24          	mov    %rax,(%r12)
140039772:	41 8b 44 24 18       	mov    0x18(%r12),%eax
140039777:	8d 48 01             	lea    0x1(%rax),%ecx
14003977a:	81 e1 ff 7f 00 00    	and    $0x7fff,%ecx
140039780:	25 00 80 ff ff       	and    $0xffff8000,%eax
140039785:	09 c8                	or     %ecx,%eax
140039787:	41 89 44 24 18       	mov    %eax,0x18(%r12)
14003978c:	49 8b 44 24 10       	mov    0x10(%r12),%rax
140039791:	8b 40 18             	mov    0x18(%rax),%eax
140039794:	48 03 86 a0 18 00 00 	add    0x18a0(%rsi),%rax
14003979b:	48 89 86 a0 18 00 00 	mov    %rax,0x18a0(%rsi)
1400397a2:	48 8b 8e a8 18 00 00 	mov    0x18a8(%rsi),%rcx
1400397a9:	48 39 c1             	cmp    %rax,%rcx
1400397ac:	48 0f 47 c1          	cmova  %rcx,%rax
1400397b0:	48 89 86 a8 18 00 00 	mov    %rax,0x18a8(%rsi)
1400397b7:	49 8b 44 24 10       	mov    0x10(%r12),%rax
1400397bc:	44 8b 60 18          	mov    0x18(%rax),%r12d
1400397c0:	4c 89 f9             	mov    %r15,%rcx
1400397c3:	ff 15 6f e0 0b 00    	call   *0xbe06f(%rip)        # 0x1400f7838
1400397c9:	e9 73 fe ff ff       	jmp    0x140039641
1400397ce:	48 89 f1             	mov    %rsi,%rcx
1400397d1:	e8 0a 68 00 00       	call   0x14003ffe0
1400397d6:	48 89 c3             	mov    %rax,%rbx
1400397d9:	48 83 fb 02          	cmp    $0x2,%rbx
1400397dd:	0f 83 ea fd ff ff    	jae    0x1400395cd
1400397e3:	0f b7 c7             	movzwl %di,%eax
1400397e6:	48 8d 04 40          	lea    (%rax,%rax,2),%rax
1400397ea:	c1 e0 04             	shl    $0x4,%eax
1400397ed:	4c 8d 24 06          	lea    (%rsi,%rax,1),%r12
1400397f1:	49 83 c4 48          	add    $0x48,%r12
1400397f5:	48 8d 5e 40          	lea    0x40(%rsi),%rbx
1400397f9:	48 89 d9             	mov    %rbx,%rcx
1400397fc:	ff 15 0e e1 0b 00    	call   *0xbe10e(%rip)        # 0x1400f7910
140039802:	84 c0                	test   %al,%al
140039804:	75 08                	jne    0x14003980e
140039806:	48 89 d9             	mov    %rbx,%rcx
140039809:	e8 72 81 00 00       	call   0x140041980
14003980e:	4d 8b 3c 24          	mov    (%r12),%r15
140039812:	4c 89 7c 24 48       	mov    %r15,0x48(%rsp)
140039817:	49 8b 3f             	mov    (%r15),%rdi
14003981a:	48 85 ff             	test   %rdi,%rdi
14003981d:	0f 84 21 01 00 00    	je     0x140039944
140039823:	c6 44 24 47 00       	movb   $0x0,0x47(%rsp)
140039828:	4c 89 f9             	mov    %r15,%rcx
14003982b:	e8 00 a3 00 00       	call   0x140043b30
140039830:	84 c0                	test   %al,%al
140039832:	0f 84 7c 01 00 00    	je     0x1400399b4
140039838:	4c 89 f8             	mov    %r15,%rax
14003983b:	48 25 00 f0 ff ff    	and    $0xfffffffffffff000,%rax
140039841:	48 8b 00             	mov    (%rax),%rax
140039844:	48 8d 15 3d 6a 0b 00 	lea    0xb6a3d(%rip),%rdx        # 0x1400f0288