1402b64bd:	85 c0                	test   %eax,%eax
1402b64bf:	75 1b                	jne    0x1402b64dc
1402b64c1:	41 8b c1             	mov    %r9d,%eax
1402b64c4:	41 f7 e8             	imul   %r8d
1402b64c7:	c1 fa 05             	sar    $0x5,%edx
1402b64ca:	8b ca                	mov    %edx,%ecx
1402b64cc:	c1 e9 1f             	shr    $0x1f,%ecx
1402b64cf:	03 d1                	add    %ecx,%edx
1402b64d1:	6b d2 64             	imul   $0x64,%edx,%edx
1402b64d4:	44 3b c2             	cmp    %edx,%r8d
1402b64d7:	74 03                	je     0x1402b64dc
1402b64d9:	b0 01                	mov    $0x1,%al
1402b64db:	c3                   	ret
1402b64dc:	41 8d 88 6c 07 00 00 	lea    0x76c(%r8),%ecx
1402b64e3:	41 8b c1             	mov    %r9d,%eax
1402b64e6:	f7 e9                	imul   %ecx
1402b64e8:	c1 fa 07             	sar    $0x7,%edx
1402b64eb:	8b c2                	mov    %edx,%eax
1402b64ed:	c1 e8 1f             	shr    $0x1f,%eax
1402b64f0:	03 d0                	add    %eax,%edx
1402b64f2:	69 c2 90 01 00 00    	imul   $0x190,%edx,%eax
1402b64f8:	3b c8                	cmp    %eax,%ecx
1402b64fa:	0f 94 c0             	sete   %al
1402b64fd:	c3                   	ret
1402b64fe:	cc                   	int3
1402b64ff:	cc                   	int3
1402b6500:	48 89 5c 24 10       	mov    %rbx,0x10(%rsp)
1402b6505:	57                   	push   %rdi
1402b6506:	48 83 ec 20          	sub    $0x20,%rsp
1402b650a:	48 8b fa             	mov    %rdx,%rdi
1402b650d:	48 8b d9             	mov    %rcx,%rbx
1402b6510:	48 85 c9             	test   %rcx,%rcx
1402b6513:	75 18                	jne    0x1402b652d
1402b6515:	e8 8e 63 00 00       	call   0x1402bc8a8
1402b651a:	bb 16 00 00 00       	mov    $0x16,%ebx
1402b651f:	89 18                	mov    %ebx,(%rax)
1402b6521:	e8 de fe ff ff       	call   0x1402b6404
1402b6526:	8b c3                	mov    %ebx,%eax
1402b6528:	e9 60 01 00 00       	jmp    0x1402b668d
1402b652d:	66 0f 6f 05 1b fc 02 	movdqa 0x2fc1b(%rip),%xmm0        # 0x1402e6150
1402b6534:	00
1402b6535:	0f 11 01             	movups %xmm0,(%rcx)
1402b6538:	0f 11 41 10          	movups %xmm0,0x10(%rcx)
1402b653c:	66 0f 7e 41 20       	movd   %xmm0,0x20(%rcx)
1402b6541:	48 85 ff             	test   %rdi,%rdi
1402b6544:	74 cf                	je     0x1402b6515
1402b6546:	48 8b 02             	mov    (%rdx),%rax
1402b6549:	48 89 44 24 40       	mov    %rax,0x40(%rsp)
1402b654e:	48 3d 40 57 ff ff    	cmp    $0xffffffffffff5740,%rax
1402b6554:	7d 0e                	jge    0x1402b6564
1402b6556:	e8 4d 63 00 00       	call   0x1402bc8a8
1402b655b:	bb 16 00 00 00       	mov    $0x16,%ebx
1402b6560:	89 18                	mov    %ebx,(%rax)
1402b6562:	eb c2                	jmp    0x1402b6526
1402b6564:	48 b9 df ef 58 93 07 	movabs $0x79358efdf,%rcx
1402b656b:	00 00 00
1402b656e:	48 3b c1             	cmp    %rcx,%rax
1402b6571:	7f e3                	jg     0x1402b6556
1402b6573:	48 8d 54 24 30       	lea    0x30(%rsp),%rdx
1402b6578:	c6 44 24 30 00       	movb   $0x0,0x30(%rsp)
1402b657d:	48 8d 4c 24 40       	lea    0x40(%rsp),%rcx
1402b6582:	e8 11 01 00 00       	call   0x1402b6698
1402b6587:	4c 8b 44 24 40       	mov    0x40(%rsp),%r8
1402b658c:	4c 8d 15 4d ac 0e 00 	lea    0xeac4d(%rip),%r10        # 0x1403a11e0
1402b6593:	89 43 14             	mov    %eax,0x14(%rbx)
1402b6596:	49 bb 57 29 51 ce a0 	movabs $0x1845c8a0ce512957,%r11
1402b659d:	c8 45 18
1402b65a0:	49 8b c3             	mov    %r11,%rax
1402b65a3:	41 b9 01 00 00 00    	mov    $0x1,%r9d
1402b65a9:	49 f7 e8             	imul   %r8
1402b65ac:	48 c1 fa 0d          	sar    $0xd,%rdx
1402b65b0:	48 8b c2             	mov    %rdx,%rax
1402b65b3:	48 c1 e8 3f          	shr    $0x3f,%rax
1402b65b7:	48 03 d0             	add    %rax,%rdx
1402b65ba:	48 63 c2             	movslq %edx,%rax
1402b65bd:	48 69 c8 80 ae fe ff 	imul   $0xfffffffffffeae80,%rax,%rcx
1402b65c4:	48 8d 05 4d ac 0e 00 	lea    0xeac4d(%rip),%rax        # 0x1403a1218
1402b65cb:	89 53 1c             	mov    %edx,0x1c(%rbx)
1402b65ce:	4c 03 c1             	add    %rcx,%r8
1402b65d1:	80 7c 24 30 00       	cmpb   $0x0,0x30(%rsp)
1402b65d6:	4c 0f 45 d0          	cmovne %rax,%r10
1402b65da:	49 8d 4a 04          	lea    0x4(%r10),%rcx
1402b65de:	eb 07                	jmp    0x1402b65e7
1402b65e0:	41 ff c1             	inc    %r9d
1402b65e3:	48 8d 49 04          	lea    0x4(%rcx),%rcx
1402b65e7:	39 11                	cmp    %edx,(%rcx)
1402b65e9:	7c f5                	jl     0x1402b65e0
1402b65eb:	41 8d 49 ff          	lea    -0x1(%r9),%ecx
1402b65ef:	49 8b c3             	mov    %r11,%rax
1402b65f2:	89 4b 10             	mov    %ecx,0x10(%rbx)
1402b65f5:	49 63 c9             	movslq %r9d,%rcx
1402b65f8:	41 2b 54 8a fc       	sub    -0x4(%r10,%rcx,4),%edx
1402b65fd:	89 53 0c             	mov    %edx,0xc(%rbx)
1402b6600:	48 f7 2f             	imulq  (%rdi)
1402b6603:	83 63 20 00          	andl   $0x0,0x20(%rbx)
1402b6607:	48 8b ca             	mov    %rdx,%rcx
1402b660a:	48 c1 f9 0d          	sar    $0xd,%rcx
1402b660e:	48 8b c1             	mov    %rcx,%rax
1402b6611:	48 c1 e8 3f          	shr    $0x3f,%rax
1402b6615:	48 03 c8             	add    %rax,%rcx
1402b6618:	b8 93 24 49 92       	mov    $0x92492493,%eax
1402b661d:	83 c1 04             	add    $0x4,%ecx
1402b6620:	f7 e9                	imul   %ecx
1402b6622:	03 d1                	add    %ecx,%edx
1402b6624:	c1 fa 02             	sar    $0x2,%edx
1402b6627:	8b c2                	mov    %edx,%eax
1402b6629:	c1 e8 1f             	shr    $0x1f,%eax
1402b662c:	03 d0                	add    %eax,%edx
1402b662e:	6b c2 07             	imul   $0x7,%edx,%eax
1402b6631:	2b c8                	sub    %eax,%ecx
1402b6633:	48 b8 05 7c f3 6a e2 	movabs $0x48d159e26af37c05,%rax
1402b663a:	59 d1 48
1402b663d:	49 f7 e8             	imul   %r8
1402b6640:	89 4b 18             	mov    %ecx,0x18(%rbx)
1402b6643:	48 c1 fa 0a          	sar    $0xa,%rdx
1402b6647:	48 8b c2             	mov    %rdx,%rax
1402b664a:	48 c1 e8 3f          	shr    $0x3f,%rax
1402b664e:	48 03 d0             	add    %rax,%rdx
1402b6651:	48 63 c2             	movslq %edx,%rax
1402b6654:	48 69 c8 f0 f1 ff ff 	imul   $0xfffffffffffff1f0,%rax,%rcx
1402b665b:	89 53 08             	mov    %edx,0x8(%rbx)
1402b665e:	48 b8 89 88 88 88 88 	movabs $0x8888888888888889,%rax
1402b6665:	88 88 88
1402b6668:	4c 03 c1             	add    %rcx,%r8
1402b666b:	49 f7 e8             	imul   %r8
1402b666e:	49 03 d0             	add    %r8,%rdx
1402b6671:	48 c1 fa 05          	sar    $0x5,%rdx
1402b6675:	48 8b c2             	mov    %rdx,%rax
1402b6678:	48 c1 e8 3f          	shr    $0x3f,%rax
1402b667c:	48 03 d0             	add    %rax,%rdx
1402b667f:	6b c2 3c             	imul   $0x3c,%edx,%eax
1402b6682:	89 53 04             	mov    %edx,0x4(%rbx)
1402b6685:	44 2b c0             	sub    %eax,%r8d
1402b6688:	44 89 03             	mov    %r8d,(%rbx)
1402b668b:	33 c0                	xor    %eax,%eax
1402b668d:	48 8b 5c 24 38       	mov    0x38(%rsp),%rbx
1402b6692:	48 83 c4 20          	add    $0x20,%rsp
1402b6696:	5f                   	pop    %rdi
1402b6697:	c3                   	ret
1402b6698:	48 89 5c 24 08       	mov    %rbx,0x8(%rsp)
1402b669d:	48 89 74 24 10       	mov    %rsi,0x10(%rsp)
1402b66a2:	48 89 7c 24 18       	mov    %rdi,0x18(%rsp)
1402b66a7:	41 56                	push   %r14
1402b66a9:	48 83 ec 20          	sub    $0x20,%rsp
1402b66ad:	48 8b 39             	mov    (%rcx),%rdi
1402b66b0:	4c 8b f2             	mov    %rdx,%r14
1402b66b3:	48 8b f1             	mov    %rcx,%rsi
1402b66b6:	41 ba 1f 85 eb 51    	mov    $0x51eb851f,%r10d
1402b66bc:	48 b8 b9 70 12 cb f5 	movabs $0x883148f5cb1270b9,%rax
1402b66c3:	48 31 88
1402b66c6:	48 f7 ef             	imul   %rdi
1402b66c9:	4c 8d 04 17          	lea    (%rdi,%rdx,1),%r8
1402b66cd:	49 c1 f8 18          	sar    $0x18,%r8
1402b66d1:	49 8b c0             	mov    %r8,%rax
1402b66d4:	48 c1 e8 3f          	shr    $0x3f,%rax
1402b66d8:	4c 03 c0             	add    %rax,%r8
1402b66db:	41 8b c2             	mov    %r10d,%eax
1402b66de:	41 8d 58 46          	lea    0x46(%r8),%ebx
1402b66e2:	8d 8b 2b 01 00 00    	lea    0x12b(%rbx),%ecx
1402b66e8:	f7 e9                	imul   %ecx
1402b66ea:	44 8d 4b ff          	lea    -0x1(%rbx),%r9d
1402b66ee:	8b ca                	mov    %edx,%ecx
1402b66f0:	c1 f9 07             	sar    $0x7,%ecx
1402b66f3:	8b c1                	mov    %ecx,%eax
1402b66f5:	c1 e8 1f             	shr    $0x1f,%eax
1402b66f8:	03 c8                	add    %eax,%ecx
1402b66fa:	41 8b c2             	mov    %r10d,%eax
1402b66fd:	41 f7 e9             	imul   %r9d
1402b6700:	c1 fa 05             	sar    $0x5,%edx
1402b6703:	8b c2                	mov    %edx,%eax
1402b6705:	c1 e8 1f             	shr    $0x1f,%eax
1402b6708:	03 d0                	add    %eax,%edx
1402b670a:	41 8b c1             	mov    %r9d,%eax
1402b670d:	2b ca                	sub    %edx,%ecx
1402b670f:	99                   	cltd
1402b6710:	83 e2 03             	and    $0x3,%edx
1402b6713:	03 c2                	add    %edx,%eax
1402b6715:	c1 f8 02             	sar    $0x2,%eax
1402b6718:	83 c0 ef             	add    $0xffffffef,%eax
1402b671b:	03 c8                	add    %eax,%ecx
1402b671d:	49 63 c0             	movslq %r8d,%rax
1402b6720:	48 63 d1             	movslq %ecx,%rdx
1402b6723:	48 69 c8 6d 01 00 00 	imul   $0x16d,%rax,%rcx
1402b672a:	48 03 d1             	add    %rcx,%rdx
1402b672d:	48 69 c2 80 51 01 00 	imul   $0x15180,%rdx,%rax
1402b6734:	48 2b f8             	sub    %rax,%rdi
1402b6737:	48 89 3e             	mov    %rdi,(%rsi)
1402b673a:	79 25                	jns    0x1402b6761
1402b673c:	48 81 c7 80 33 e1 01 	add    $0x1e13380,%rdi
1402b6743:	41 8b c9             	mov    %r9d,%ecx
1402b6746:	48 89 3e             	mov    %rdi,(%rsi)
1402b6749:	41 8b d9             	mov    %r9d,%ebx
1402b674c:	e8 53 fd ff ff       	call   0x1402b64a4
1402b6751:	84 c0                	test   %al,%al
1402b6753:	74 1b                	je     0x1402b6770
1402b6755:	48 8d 87 80 51 01 00 	lea    0x15180(%rdi),%rax
1402b675c:	48 89 06             	mov    %rax,(%rsi)
1402b675f:	eb 0b                	jmp    0x1402b676c
1402b6761:	8b cb                	mov    %ebx,%ecx
1402b6763:	e8 3c fd ff ff       	call   0x1402b64a4
1402b6768:	84 c0                	test   %al,%al
1402b676a:	74 04                	je     0x1402b6770
1402b676c:	41 c6 06 01          	movb   $0x1,(%r14)
1402b6770:	48 8b 74 24 38       	mov    0x38(%rsp),%rsi
1402b6775:	8b c3                	mov    %ebx,%eax
1402b6777:	48 8b 5c 24 30       	mov    0x30(%rsp),%rbx
1402b677c:	48 8b 7c 24 40       	mov    0x40(%rsp),%rdi
1402b6781:	48 83 c4 20          	add    $0x20,%rsp
1402b6785:	41 5e                	pop    %r14
1402b6787:	c3                   	ret
1402b6788:	40 53                	rex push %rbx
1402b678a:	48 83 ec 20          	sub    $0x20,%rsp
1402b678e:	e8 55 c0 01 00       	call   0x1402d27e8
1402b6793:	48 8b d8             	mov    %rax,%rbx
1402b6796:	48 85 c0             	test   %rax,%rax
1402b6799:	74 25                	je     0x1402b67c0
1402b679b:	48 8b 40 68          	mov    0x68(%rax),%rax
1402b679f:	48 85 c0             	test   %rax,%rax
1402b67a2:	75 29                	jne    0x1402b67cd
1402b67a4:	8d 48 24             	lea    0x24(%rax),%ecx
1402b67a7:	e8 d8 c2 01 00       	call   0x1402d2a84
1402b67ac:	33 c9                	xor    %ecx,%ecx
1402b67ae:	48 89 43 68          	mov    %rax,0x68(%rbx)
1402b67b2:	e8 91 c2 01 00       	call   0x1402d2a48
1402b67b7:	48 8b 43 68          	mov    0x68(%rbx),%rax
1402b67bb:	48 85 c0             	test   %rax,%rax
1402b67be:	75 0d                	jne    0x1402b67cd
1402b67c0:	e8 e3 60 00 00       	call   0x1402bc8a8
1402b67c5:	c7 00 0c 00 00 00    	movl   $0xc,(%rax)
1402b67cb:	33 c0                	xor    %eax,%eax
1402b67cd:	48 83 c4 20          	add    $0x20,%rsp
1402b67d1:	5b                   	pop    %rbx
1402b67d2:	c3                   	ret
1402b67d3:	cc                   	int3
1402b67d4:	48 89 5c 24 08       	mov    %rbx,0x8(%rsp)
1402b67d9:	48 89 74 24 10       	mov    %rsi,0x10(%rsp)
1402b67de:	57                   	push   %rdi
1402b67df:	48 83 ec 20          	sub    $0x20,%rsp
1402b67e3:	48 8b f1             	mov    %rcx,%rsi
1402b67e6:	e8 9d ff ff ff       	call   0x1402b6788
1402b67eb:	33 db                	xor    %ebx,%ebx
1402b67ed:	48 8b f8             	mov    %rax,%rdi
1402b67f0:	48 85 c0             	test   %rax,%rax
1402b67f3:	74 14                	je     0x1402b6809
1402b67f5:	48 8b d6             	mov    %rsi,%rdx
1402b67f8:	48 8b c8             	mov    %rax,%rcx
1402b67fb:	e8 00 fd ff ff       	call   0x1402b6500
1402b6800:	85 c0                	test   %eax,%eax
1402b6802:	48 0f 45 fb          	cmovne %rbx,%rdi
1402b6806:	48 8b df             	mov    %rdi,%rbx
1402b6809:	48 8b 74 24 38       	mov    0x38(%rsp),%rsi
1402b680e:	48 8b c3             	mov    %rbx,%rax
1402b6811:	48 8b 5c 24 30       	mov    0x30(%rsp),%rbx
1402b6816:	48 83 c4 20          	add    $0x20,%rsp
1402b681a:	5f                   	pop    %rdi
1402b681b:	c3                   	ret
1402b681c:	e9 df fc ff ff       	jmp    0x1402b6500
1402b6821:	cc                   	int3
1402b6822:	cc                   	int3
1402b6823:	cc                   	int3
1402b6824:	48 83 ec 58          	sub    $0x58,%rsp
1402b6828:	48 8b 05 51 f2 11 00 	mov    0x11f251(%rip),%rax        # 0x1403d5a80
1402b682f:	48 33 c4             	xor    %rsp,%rax
1402b6832:	48 89 44 24 40       	mov    %rax,0x40(%rsp)
1402b6837:	45 33 c9             	xor    %r9d,%r9d
1402b683a:	4c 8b c2             	mov    %rdx,%r8
1402b683d:	41 8b c1             	mov    %r9d,%eax
1402b6840:	4c 8b d1             	mov    %rcx,%r10
1402b6843:	48 83 f8 20          	cmp    $0x20,%rax
1402b6847:	45 8d 59 01          	lea    0x1(%r9),%r11d
1402b684b:	73 71                	jae    0x1402b68be
1402b684d:	44 88 4c 04 20       	mov    %r9b,0x20(%rsp,%rax,1)
1402b6852:	49 03 c3             	add    %r11,%rax
1402b6855:	48 83 f8 20          	cmp    $0x20,%rax
1402b6859:	7c f0                	jl     0x1402b684b
1402b685b:	8a 02                	mov    (%rdx),%al
1402b685d:	eb 1f                	jmp    0x1402b687e
1402b685f:	0f b6 d0             	movzbl %al,%edx
1402b6862:	48 c1 ea 03          	shr    $0x3,%rdx
1402b6866:	0f b6 c0             	movzbl %al,%eax
1402b6869:	83 e0 07             	and    $0x7,%eax
1402b686c:	0f b6 4c 14 20       	movzbl 0x20(%rsp,%rdx,1),%ecx
1402b6871:	0f ab c1             	bts    %eax,%ecx
1402b6874:	4d 03 c3             	add    %r11,%r8
1402b6877:	88 4c 14 20          	mov    %cl,0x20(%rsp,%rdx,1)
1402b687b:	41 8a 00             	mov    (%r8),%al
1402b687e:	84 c0                	test   %al,%al
1402b6880:	75 dd                	jne    0x1402b685f
1402b6882:	44 08 5c 24 20       	or     %r11b,0x20(%rsp)
1402b6887:	eb 06                	jmp    0x1402b688f
1402b6889:	45 03 cb             	add    %r11d,%r9d
1402b688c:	4d 03 d3             	add    %r11,%r10
1402b688f:	45 0f b6 02          	movzbl (%r10),%r8d
1402b6893:	41 8b d3             	mov    %r11d,%edx
1402b6896:	41 8b c8             	mov    %r8d,%ecx
1402b6899:	49 c1 e8 03          	shr    $0x3,%r8
1402b689d:	83 e1 07             	and    $0x7,%ecx
1402b68a0:	d3 e2                	shl    %cl,%edx
1402b68a2:	42 84 54 04 20       	test   %dl,0x20(%rsp,%r8,1)
1402b68a7:	74 e0                	je     0x1402b6889
1402b68a9:	49 63 c1             	movslq %r9d,%rax
1402b68ac:	48 8b 4c 24 40       	mov    0x40(%rsp),%rcx
1402b68b1:	48 33 cc             	xor    %rsp,%rcx
1402b68b4:	e8 f7 95 ff ff       	call   0x1402afeb0
1402b68b9:	48 83 c4 58          	add    $0x58,%rsp
1402b68bd:	c3                   	ret
1402b68be:	e8 61 9d ff ff       	call   0x1402b0624
1402b68c3:	cc                   	int3
1402b68c4:	cc                   	int3
1402b68c5:	cc                   	int3
1402b68c6:	cc                   	int3
1402b68c7:	cc                   	int3
1402b68c8:	cc                   	int3
1402b68c9:	cc                   	int3
1402b68ca:	cc                   	int3
1402b68cb:	cc                   	int3
1402b68cc:	cc                   	int3
1402b68cd:	cc                   	int3
1402b68ce:	cc                   	int3
1402b68cf:	cc                   	int3
1402b68d0:	48 89 6c 24 10       	mov    %rbp,0x10(%rsp)
1402b68d5:	48 89 74 24 18       	mov    %rsi,0x18(%rsp)
1402b68da:	57                   	push   %rdi
1402b68db:	48 83 ec 20          	sub    $0x20,%rsp
1402b68df:	4c 8b da             	mov    %rdx,%r11
1402b68e2:	48 8d 2d 17 97 d4 ff 	lea    -0x2b68e9(%rip),%rbp        # 0x140000000
1402b68e9:	41 83 e3 0f          	and    $0xf,%r11d
1402b68ed:	48 8b f2             	mov    %rdx,%rsi
1402b68f0:	49 2b f3             	sub    %r11,%rsi
1402b68f3:	48 8b fa             	mov    %rdx,%rdi
1402b68f6:	4c 8b c1             	mov    %rcx,%r8
1402b68f9:	0f 57 db             	xorps  %xmm3,%xmm3
1402b68fc:	49 8d 43 ff          	lea    -0x1(%r11),%rax
1402b6900:	f3 0f 6f 0e          	movdqu (%rsi),%xmm1
1402b6904:	48 83 f8 0e          	cmp    $0xe,%rax
1402b6908:	77 73                	ja     0x1402b697d
1402b690a:	8b 84 85 e4 6b 2b 00 	mov    0x2b6be4(%rbp,%rax,4),%eax
1402b6911:	48 03 c5             	add    %rbp,%rax
1402b6914:	ff e0                	jmp    *%rax
1402b6916:	66 0f 73 d9 01       	psrldq $0x1,%xmm1
1402b691b:	eb 60                	jmp    0x1402b697d
1402b691d:	66 0f 73 d9 02       	psrldq $0x2,%xmm1
1402b6922:	eb 59                	jmp    0x1402b697d
1402b6924:	66 0f 73 d9 03       	psrldq $0x3,%xmm1
1402b6929:	eb 52                	jmp    0x1402b697d
1402b692b:	66 0f 73 d9 04       	psrldq $0x4,%xmm1
1402b6930:	eb 4b                	jmp    0x1402b697d
1402b6932:	66 0f 73 d9 05       	psrldq $0x5,%xmm1
1402b6937:	eb 44                	jmp    0x1402b697d
1402b6939:	66 0f 73 d9 06       	psrldq $0x6,%xmm1