14002a2ca:	4d 85 e4             	test   %r12,%r12
14002a2cd:	0f 84 e5 00 00 00    	je     0x14002a3b8
14002a2d3:	4c 89 e0             	mov    %r12,%rax
14002a2d6:	48 d1 e8             	shr    $1,%rax
14002a2d9:	48 b9 55 55 55 55 55 	movabs $0x5555555555555555,%rcx
14002a2e0:	55 55 55
14002a2e3:	48 21 c1             	and    %rax,%rcx
14002a2e6:	4c 89 e0             	mov    %r12,%rax
14002a2e9:	48 29 c8             	sub    %rcx,%rax
14002a2ec:	48 b9 33 33 33 33 33 	movabs $0x3333333333333333,%rcx
14002a2f3:	33 33 33
14002a2f6:	48 89 c2             	mov    %rax,%rdx
14002a2f9:	48 21 ca             	and    %rcx,%rdx
14002a2fc:	48 c1 e8 02          	shr    $0x2,%rax
14002a300:	48 21 c8             	and    %rcx,%rax
14002a303:	48 01 d0             	add    %rdx,%rax
14002a306:	48 89 c1             	mov    %rax,%rcx
14002a309:	48 c1 e9 04          	shr    $0x4,%rcx
14002a30d:	48 01 c1             	add    %rax,%rcx
14002a310:	48 b8 0f 0f 0f 0f 0f 	movabs $0xf0f0f0f0f0f0f0f,%rax
14002a317:	0f 0f 0f
14002a31a:	48 21 c8             	and    %rcx,%rax
14002a31d:	48 b9 01 01 01 01 01 	movabs $0x101010101010101,%rcx
14002a324:	01 01 01
14002a327:	48 0f af c8          	imul   %rax,%rcx
14002a32b:	48 c1 e9 38          	shr    $0x38,%rcx
14002a32f:	48 83 f9 01          	cmp    $0x1,%rcx
14002a333:	76 55                	jbe    0x14002a38a
14002a335:	49 89 df             	mov    %rbx,%r15
14002a338:	49 39 dc             	cmp    %rbx,%r12
14002a33b:	77 0b                	ja     0x14002a348
14002a33d:	48 89 d8             	mov    %rbx,%rax
14002a340:	31 d2                	xor    %edx,%edx
14002a342:	49 f7 f4             	div    %r12
14002a345:	49 89 d7             	mov    %rdx,%r15
14002a348:	48 8b 07             	mov    (%rdi),%rax
14002a34b:	4a 8b 04 f8          	mov    (%rax,%r15,8),%rax
14002a34f:	48 85 c0             	test   %rax,%rax
14002a352:	74 6e                	je     0x14002a3c2
14002a354:	4c 8b 30             	mov    (%rax),%r14
14002a357:	4d 85 f6             	test   %r14,%r14
14002a35a:	74 66                	je     0x14002a3c2
14002a35c:	83 f9 02             	cmp    $0x2,%ecx
14002a35f:	72 33                	jb     0x14002a394
14002a361:	49 8b 46 08          	mov    0x8(%r14),%rax
14002a365:	48 39 d8             	cmp    %rbx,%rax
14002a368:	0f 84 1e 02 00 00    	je     0x14002a58c
14002a36e:	4c 39 e0             	cmp    %r12,%rax
14002a371:	72 08                	jb     0x14002a37b
14002a373:	31 d2                	xor    %edx,%edx
14002a375:	49 f7 f4             	div    %r12
14002a378:	48 89 d0             	mov    %rdx,%rax
14002a37b:	4c 39 f8             	cmp    %r15,%rax
14002a37e:	75 42                	jne    0x14002a3c2
14002a380:	4d 8b 36             	mov    (%r14),%r14
14002a383:	4d 85 f6             	test   %r14,%r14
14002a386:	75 d9                	jne    0x14002a361
14002a388:	eb 38                	jmp    0x14002a3c2
14002a38a:	4d 8d 7c 24 ff       	lea    -0x1(%r12),%r15
14002a38f:	49 21 df             	and    %rbx,%r15
14002a392:	eb b4                	jmp    0x14002a348
14002a394:	49 8d 44 24 ff       	lea    -0x1(%r12),%rax
14002a399:	49 8b 4e 08          	mov    0x8(%r14),%rcx
14002a39d:	48 39 d9             	cmp    %rbx,%rcx
14002a3a0:	0f 84 da 01 00 00    	je     0x14002a580
14002a3a6:	48 21 c1             	and    %rax,%rcx
14002a3a9:	4c 39 f9             	cmp    %r15,%rcx
14002a3ac:	75 14                	jne    0x14002a3c2
14002a3ae:	4d 8b 36             	mov    (%r14),%r14
14002a3b1:	4d 85 f6             	test   %r14,%r14
14002a3b4:	75 e3                	jne    0x14002a399
14002a3b6:	eb 0a                	jmp    0x14002a3c2
14002a3b8:	49 bf aa aa aa aa aa 	movabs $0xaaaaaaaaaaaaaaaa,%r15
14002a3bf:	aa aa aa
14002a3c2:	b9 30 00 00 00       	mov    $0x30,%ecx
14002a3c7:	e8 c8 3a 04 00       	call   0x14006de94
14002a3cc:	48 85 c0             	test   %rax,%rax
14002a3cf:	0f 84 a9 01 00 00    	je     0x14002a57e
14002a3d5:	49 89 c6             	mov    %rax,%r14
14002a3d8:	48 8b 84 24 80 00 00 	mov    0x80(%rsp),%rax
14002a3df:	00
14002a3e0:	49 c7 06 00 00 00 00 	movq   $0x0,(%r14)
14002a3e7:	49 89 5e 08          	mov    %rbx,0x8(%r14)
14002a3eb:	48 8b 00             	mov    (%rax),%rax
14002a3ee:	8b 00                	mov    (%rax),%eax
14002a3f0:	41 89 46 10          	mov    %eax,0x10(%r14)
14002a3f4:	4c 89 f1             	mov    %r14,%rcx
14002a3f7:	48 83 c1 18          	add    $0x18,%rcx
14002a3fb:	e8 e0 34 00 00       	call   0x14002d8e0
14002a400:	48 8b 47 18          	mov    0x18(%rdi),%rax
14002a404:	48 ff c0             	inc    %rax
14002a407:	79 17                	jns    0x14002a420
14002a409:	48 89 c1             	mov    %rax,%rcx
14002a40c:	48 d1 e9             	shr    $1,%rcx
14002a40f:	83 e0 01             	and    $0x1,%eax
14002a412:	48 09 c8             	or     %rcx,%rax
14002a415:	f3 48 0f 2a c0       	cvtsi2ss %rax,%xmm0
14002a41a:	f3 0f 58 c0          	addss  %xmm0,%xmm0
14002a41e:	eb 05                	jmp    0x14002a425
14002a420:	f3 48 0f 2a c0       	cvtsi2ss %rax,%xmm0
14002a425:	4c 89 e1             	mov    %r12,%rcx
14002a428:	48 d1 e9             	shr    $1,%rcx
14002a42b:	44 89 e0             	mov    %r12d,%eax
14002a42e:	83 e0 01             	and    $0x1,%eax
14002a431:	48 09 c8             	or     %rcx,%rax
14002a434:	4d 85 e4             	test   %r12,%r12
14002a437:	79 1a                	jns    0x14002a453
14002a439:	f3 48 0f 2a c8       	cvtsi2ss %rax,%xmm1
14002a43e:	f3 0f 58 c9          	addss  %xmm1,%xmm1
14002a442:	eb 14                	jmp    0x14002a458
14002a444:	4d 8d 44 24 ff       	lea    -0x1(%r12),%r8
14002a449:	31 c9                	xor    %ecx,%ecx
14002a44b:	4d 85 c4             	test   %r8,%r12
14002a44e:	0f 95 c1             	setne  %cl
14002a451:	eb 50                	jmp    0x14002a4a3
14002a453:	f3 49 0f 2a cc       	cvtsi2ss %r12,%xmm1
14002a458:	f3 0f 10 57 20       	movss  0x20(%rdi),%xmm2
14002a45d:	74 0d                	je     0x14002a46c
14002a45f:	f3 0f 59 ca          	mulss  %xmm2,%xmm1
14002a463:	0f 2e c1             	ucomiss %xmm1,%xmm0
14002a466:	0f 86 9c 00 00 00    	jbe    0x14002a508
14002a46c:	f3 0f 5e c2          	divss  %xmm2,%xmm0
14002a470:	e8 9b 29 07 00       	call   0x14009ce10
14002a475:	f3 48 0f 2c c8       	cvttss2si %xmm0,%rcx
14002a47a:	48 89 ca             	mov    %rcx,%rdx
14002a47d:	f3 0f 5c 05 5b 2c 0c 	subss  0xc2c5b(%rip),%xmm0        # 0x1400ed0e0
14002a484:	00
14002a485:	48 c1 fa 3f          	sar    $0x3f,%rdx
14002a489:	f3 48 0f 2c c0       	cvttss2si %xmm0,%rax
14002a48e:	48 21 d0             	and    %rdx,%rax
14002a491:	48 09 c8             	or     %rcx,%rax
14002a494:	4b 8d 14 24          	lea    (%r12,%r12,1),%rdx
14002a498:	b9 01 00 00 00       	mov    $0x1,%ecx
14002a49d:	49 83 fc 03          	cmp    $0x3,%r12
14002a4a1:	73 a1                	jae    0x14002a444
14002a4a3:	48 09 d1             	or     %rdx,%rcx
14002a4a6:	48 39 c1             	cmp    %rax,%rcx
14002a4a9:	48 0f 46 c8          	cmovbe %rax,%rcx
14002a4ad:	41 bf 02 00 00 00    	mov    $0x2,%r15d
14002a4b3:	48 83 f9 01          	cmp    $0x1,%rcx
14002a4b7:	74 15                	je     0x14002a4ce
14002a4b9:	48 8d 41 ff          	lea    -0x1(%rcx),%rax
14002a4bd:	48 85 c1             	test   %rax,%rcx
14002a4c0:	0f 84 d9 00 00 00    	je     0x14002a59f
14002a4c6:	e8 75 fa 02 00       	call   0x140059f40
14002a4cb:	49 89 c7             	mov    %rax,%r15
14002a4ce:	4c 8b 67 08          	mov    0x8(%rdi),%r12
14002a4d2:	4d 39 e7             	cmp    %r12,%r15
14002a4d5:	0f 86 d4 00 00 00    	jbe    0x14002a5af
14002a4db:	48 89 f9             	mov    %rdi,%rcx
14002a4de:	4c 89 fa             	mov    %r15,%rdx
14002a4e1:	e8 ca 01 00 00       	call   0x14002a6b0
14002a4e6:	4c 8b 67 08          	mov    0x8(%rdi),%r12
14002a4ea:	4d 8d 7c 24 ff       	lea    -0x1(%r12),%r15
14002a4ef:	4d 85 fc             	test   %r15,%r12
14002a4f2:	74 5f                	je     0x14002a553
14002a4f4:	49 39 dc             	cmp    %rbx,%r12
14002a4f7:	0f 87 aa 00 00 00    	ja     0x14002a5a7
14002a4fd:	48 89 d8             	mov    %rbx,%rax
14002a500:	31 d2                	xor    %edx,%edx
14002a502:	49 f7 f4             	div    %r12
14002a505:	49 89 d7             	mov    %rdx,%r15
14002a508:	48 8b 07             	mov    (%rdi),%rax
14002a50b:	4a 8b 0c f8          	mov    (%rax,%r15,8),%rcx
14002a50f:	48 85 c9             	test   %rcx,%rcx
14002a512:	75 44                	jne    0x14002a558
14002a514:	48 8d 4f 10          	lea    0x10(%rdi),%rcx
14002a518:	48 8b 57 10          	mov    0x10(%rdi),%rdx
14002a51c:	49 89 16             	mov    %rdx,(%r14)
14002a51f:	4c 89 77 10          	mov    %r14,0x10(%rdi)
14002a523:	4a 89 0c f8          	mov    %rcx,(%rax,%r15,8)
14002a527:	49 8b 06             	mov    (%r14),%rax
14002a52a:	48 85 c0             	test   %rax,%rax
14002a52d:	74 32                	je     0x14002a561
14002a52f:	48 8b 40 08          	mov    0x8(%rax),%rax
14002a533:	49 8d 4c 24 ff       	lea    -0x1(%r12),%rcx
14002a538:	49 85 cc             	test   %rcx,%r12
14002a53b:	74 5d                	je     0x14002a59a
14002a53d:	4c 39 e0             	cmp    %r12,%rax
14002a540:	72 08                	jb     0x14002a54a
14002a542:	31 d2                	xor    %edx,%edx
14002a544:	49 f7 f4             	div    %r12
14002a547:	48 89 d0             	mov    %rdx,%rax
14002a54a:	48 8b 0f             	mov    (%rdi),%rcx
14002a54d:	4c 89 34 c1          	mov    %r14,(%rcx,%rax,8)
14002a551:	eb 0e                	jmp    0x14002a561
14002a553:	49 21 df             	and    %rbx,%r15
14002a556:	eb b0                	jmp    0x14002a508
14002a558:	48 8b 01             	mov    (%rcx),%rax
14002a55b:	49 89 06             	mov    %rax,(%r14)
14002a55e:	4c 89 31             	mov    %r14,(%rcx)
14002a561:	48 ff 47 18          	incq   0x18(%rdi)
14002a565:	b0 01                	mov    $0x1,%al
14002a567:	4c 89 36             	mov    %r14,(%rsi)
14002a56a:	88 46 08             	mov    %al,0x8(%rsi)
14002a56d:	48 89 f0             	mov    %rsi,%rax
14002a570:	48 83 c4 28          	add    $0x28,%rsp
14002a574:	5b                   	pop    %rbx
14002a575:	5f                   	pop    %rdi
14002a576:	5e                   	pop    %rsi
14002a577:	41 5c                	pop    %r12
14002a579:	41 5e                	pop    %r14
14002a57b:	41 5f                	pop    %r15
14002a57d:	c3                   	ret
14002a57e:	0f 0b                	ud2
14002a580:	41 39 5e 10          	cmp    %ebx,0x10(%r14)
14002a584:	0f 85 24 fe ff ff    	jne    0x14002a3ae
14002a58a:	eb 0a                	jmp    0x14002a596
14002a58c:	41 39 5e 10          	cmp    %ebx,0x10(%r14)
14002a590:	0f 85 ea fd ff ff    	jne    0x14002a380
14002a596:	31 c0                	xor    %eax,%eax
14002a598:	eb cd                	jmp    0x14002a567
14002a59a:	48 21 c8             	and    %rcx,%rax
14002a59d:	eb ab                	jmp    0x14002a54a
14002a59f:	49 89 cf             	mov    %rcx,%r15
14002a5a2:	e9 27 ff ff ff       	jmp    0x14002a4ce
14002a5a7:	49 89 df             	mov    %rbx,%r15
14002a5aa:	e9 59 ff ff ff       	jmp    0x14002a508
14002a5af:	0f 83 31 ff ff ff    	jae    0x14002a4e6
14002a5b5:	48 8b 47 18          	mov    0x18(%rdi),%rax
14002a5b9:	48 85 c0             	test   %rax,%rax
14002a5bc:	79 1a                	jns    0x14002a5d8
14002a5be:	48 89 c1             	mov    %rax,%rcx
14002a5c1:	48 d1 e9             	shr    $1,%rcx
14002a5c4:	83 e0 01             	and    $0x1,%eax
14002a5c7:	48 09 c8             	or     %rcx,%rax
14002a5ca:	0f 57 c0             	xorps  %xmm0,%xmm0
14002a5cd:	f3 48 0f 2a c0       	cvtsi2ss %rax,%xmm0
14002a5d2:	f3 0f 58 c0          	addss  %xmm0,%xmm0
14002a5d6:	eb 08                	jmp    0x14002a5e0
14002a5d8:	0f 57 c0             	xorps  %xmm0,%xmm0
14002a5db:	f3 48 0f 2a c0       	cvtsi2ss %rax,%xmm0
14002a5e0:	f3 0f 5e 47 20       	divss  0x20(%rdi),%xmm0
14002a5e5:	e8 26 28 07 00       	call   0x14009ce10
14002a5ea:	f3 48 0f 2c c8       	cvttss2si %xmm0,%rcx
14002a5ef:	48 89 ca             	mov    %rcx,%rdx
14002a5f2:	f3 0f 5c 05 e6 2a 0c 	subss  0xc2ae6(%rip),%xmm0        # 0x1400ed0e0
14002a5f9:	00
14002a5fa:	f3 48 0f 2c c0       	cvttss2si %xmm0,%rax
14002a5ff:	48 c1 fa 3f          	sar    $0x3f,%rdx
14002a603:	48 21 d0             	and    %rdx,%rax
14002a606:	48 09 c8             	or     %rcx,%rax
14002a609:	49 83 fc 03          	cmp    $0x3,%r12
14002a60d:	72 7d                	jb     0x14002a68c
14002a60f:	4c 89 e1             	mov    %r12,%rcx
14002a612:	48 d1 e9             	shr    $1,%rcx
14002a615:	48 ba 55 55 55 55 55 	movabs $0x5555555555555555,%rdx
14002a61c:	55 55 55
14002a61f:	48 21 ca             	and    %rcx,%rdx
14002a622:	4c 89 e1             	mov    %r12,%rcx
14002a625:	48 29 d1             	sub    %rdx,%rcx
14002a628:	48 ba 33 33 33 33 33 	movabs $0x3333333333333333,%rdx
14002a62f:	33 33 33
14002a632:	49 89 c8             	mov    %rcx,%r8
14002a635:	49 c1 e8 02          	shr    $0x2,%r8
14002a639:	48 21 d1             	and    %rdx,%rcx
14002a63c:	49 21 d0             	and    %rdx,%r8
14002a63f:	49 01 c8             	add    %rcx,%r8
14002a642:	4c 89 c1             	mov    %r8,%rcx
14002a645:	48 c1 e9 04          	shr    $0x4,%rcx
14002a649:	4c 01 c1             	add    %r8,%rcx
14002a64c:	48 ba 0f 0f 0f 0f 0f 	movabs $0xf0f0f0f0f0f0f0f,%rdx
14002a653:	0f 0f 0f
14002a656:	48 21 ca             	and    %rcx,%rdx
14002a659:	48 b9 01 01 01 01 01 	movabs $0x101010101010101,%rcx
14002a660:	01 01 01
14002a663:	48 0f af ca          	imul   %rdx,%rcx
14002a667:	48 c1 e9 38          	shr    $0x38,%rcx
14002a66b:	83 f9 01             	cmp    $0x1,%ecx
14002a66e:	77 1c                	ja     0x14002a68c
14002a670:	48 83 f8 02          	cmp    $0x2,%rax
14002a674:	72 1e                	jb     0x14002a694
14002a676:	48 ff c8             	dec    %rax
14002a679:	48 0f bd c8          	bsr    %rax,%rcx
14002a67d:	83 f1 3f             	xor    $0x3f,%ecx
14002a680:	f6 d9                	neg    %cl
14002a682:	b8 01 00 00 00       	mov    $0x1,%eax
14002a687:	48 d3 e0             	shl    %cl,%rax
14002a68a:	eb 08                	jmp    0x14002a694
14002a68c:	48 89 c1             	mov    %rax,%rcx
14002a68f:	e8 ac f8 02 00       	call   0x140059f40
14002a694:	49 39 c7             	cmp    %rax,%r15
14002a697:	4c 0f 46 f8          	cmovbe %rax,%r15
14002a69b:	4d 39 e7             	cmp    %r12,%r15
14002a69e:	0f 82 37 fe ff ff    	jb     0x14002a4db
14002a6a4:	e9 3d fe ff ff       	jmp    0x14002a4e6
14002a6a9:	cc                   	int3
14002a6aa:	cc                   	int3
14002a6ab:	cc                   	int3
14002a6ac:	cc                   	int3
14002a6ad:	cc                   	int3
14002a6ae:	cc                   	int3
14002a6af:	cc                   	int3
14002a6b0:	56                   	push   %rsi
14002a6b1:	57                   	push   %rdi
14002a6b2:	48 83 ec 28          	sub    $0x28,%rsp
14002a6b6:	48 89 ce             	mov    %rcx,%rsi
14002a6b9:	48 85 d2             	test   %rdx,%rdx
14002a6bc:	0f 84 c9 00 00 00    	je     0x14002a78b
14002a6c2:	48 89 d7             	mov    %rdx,%rdi
14002a6c5:	48 89 d0             	mov    %rdx,%rax
14002a6c8:	48 c1 e8 3d          	shr    $0x3d,%rax
14002a6cc:	0f 85 b4 00 00 00    	jne    0x14002a786
14002a6d2:	48 8d 0c fd 00 00 00 	lea    0x0(,%rdi,8),%rcx
14002a6d9:	00
14002a6da:	e8 b5 37 04 00       	call   0x14006de94
14002a6df:	48 8b 0e             	mov    (%rsi),%rcx
14002a6e2:	48 89 06             	mov    %rax,(%rsi)
14002a6e5:	48 85 c9             	test   %rcx,%rcx
14002a6e8:	74 05                	je     0x14002a6ef
14002a6ea:	e8 e1 37 04 00       	call   0x14006ded0
14002a6ef:	48 89 7e 08          	mov    %rdi,0x8(%rsi)
14002a6f3:	31 c0                	xor    %eax,%eax
14002a6f5:	48 8b 0e             	mov    (%rsi),%rcx
14002a6f8:	48 c7 04 c1 00 00 00 	movq   $0x0,(%rcx,%rax,8)
14002a6ff:	00
14002a700:	48 ff c0             	inc    %rax
14002a703:	48 39 c7             	cmp    %rax,%rdi
14002a706:	75 ed                	jne    0x14002a6f5
14002a708:	4c 8b 46 10          	mov    0x10(%rsi),%r8
14002a70c:	4d 85 c0             	test   %r8,%r8
14002a70f:	74 6e                	je     0x14002a77f
14002a711:	4c 8d 4e 10          	lea    0x10(%rsi),%r9
14002a715:	49 8b 48 08          	mov    0x8(%r8),%rcx
14002a719:	48 8d 47 ff          	lea    -0x1(%rdi),%rax
14002a71d:	48 85 c7             	test   %rax,%rdi
14002a720:	0f 84 88 00 00 00    	je     0x14002a7ae
14002a726:	48 39 f9             	cmp    %rdi,%rcx
14002a729:	72 0b                	jb     0x14002a736
14002a72b:	48 89 c8             	mov    %rcx,%rax
14002a72e:	31 d2                	xor    %edx,%edx
14002a730:	48 f7 f7             	div    %rdi
14002a733:	48 89 d1             	mov    %rdx,%rcx
14002a736:	48 8b 06             	mov    (%rsi),%rax
14002a739:	4c 89 0c c8          	mov    %r9,(%rax,%rcx,8)
14002a73d:	4d 8b 08             	mov    (%r8),%r9
14002a740:	eb 2d                	jmp    0x14002a76f
14002a742:	48 89 c8             	mov    %rcx,%rax
14002a745:	eb 1f                	jmp    0x14002a766
14002a747:	31 d2                	xor    %edx,%edx
14002a749:	48 f7 f7             	div    %rdi
14002a74c:	48 89 d0             	mov    %rdx,%rax
14002a74f:	48 39 c8             	cmp    %rcx,%rax
14002a752:	74 ee                	je     0x14002a742
14002a754:	48 8b 16             	mov    (%rsi),%rdx
14002a757:	48 83 3c c2 00       	cmpq   $0x0,(%rdx,%rax,8)
14002a75c:	0f 85 80 00 00 00    	jne    0x14002a7e2
14002a762:	4c 89 04 c2          	mov    %r8,(%rdx,%rax,8)
14002a766:	4d 89 c8             	mov    %r9,%r8
14002a769:	4d 8b 09             	mov    (%r9),%r9