1801095af:	5d                   	pop    %rbp
1801095b0:	c3                   	ret
1801095b1:	cc                   	int3
1801095b2:	cc                   	int3
1801095b3:	cc                   	int3
1801095b4:	48 85 c9             	test   %rcx,%rcx
1801095b7:	74 42                	je     0x1801095fb
1801095b9:	53                   	push   %rbx
1801095ba:	48 83 ec 20          	sub    $0x20,%rsp
1801095be:	f6 41 40 01          	testb  $0x1,0x40(%rcx)
1801095c2:	48 8b d9             	mov    %rcx,%rbx
1801095c5:	74 2f                	je     0x1801095f6
1801095c7:	48 8b 49 18          	mov    0x18(%rcx),%rcx
1801095cb:	48 85 c9             	test   %rcx,%rcx
1801095ce:	74 05                	je     0x1801095d5
1801095d0:	e8 6b e5 ff ff       	call   0x180107b40
1801095d5:	48 8b 4b 20          	mov    0x20(%rbx),%rcx
1801095d9:	48 85 c9             	test   %rcx,%rcx
1801095dc:	74 05                	je     0x1801095e3
1801095de:	e8 5d e5 ff ff       	call   0x180107b40
1801095e3:	f6 43 3c 01          	testb  $0x1,0x3c(%rbx)
1801095e7:	74 05                	je     0x1801095ee
1801095e9:	e8 46 04 00 00       	call   0x180109a34
1801095ee:	48 8b cb             	mov    %rbx,%rcx
1801095f1:	e8 06 0a f9 ff       	call   0x180099ffc
1801095f6:	48 83 c4 20          	add    $0x20,%rsp
1801095fa:	5b                   	pop    %rbx
1801095fb:	c3                   	ret
1801095fc:	cc                   	int3
1801095fd:	cc                   	int3
1801095fe:	cc                   	int3
1801095ff:	cc                   	int3
180109600:	48 8b c4             	mov    %rsp,%rax
180109603:	48 89 58 20          	mov    %rbx,0x20(%rax)
180109607:	44 89 40 18          	mov    %r8d,0x18(%rax)
18010960b:	48 89 50 10          	mov    %rdx,0x10(%rax)
18010960f:	55                   	push   %rbp
180109610:	56                   	push   %rsi
180109611:	57                   	push   %rdi
180109612:	41 54                	push   %r12
180109614:	41 55                	push   %r13
180109616:	41 56                	push   %r14
180109618:	41 57                	push   %r15
18010961a:	48 8d 68 a9          	lea    -0x57(%rax),%rbp
18010961e:	48 81 ec 90 00 00 00 	sub    $0x90,%rsp
180109625:	48 8b c2             	mov    %rdx,%rax
180109628:	4d 8b e9             	mov    %r9,%r13
18010962b:	33 d2                	xor    %edx,%edx
18010962d:	48 8b f9             	mov    %rcx,%rdi
180109630:	89 55 e7             	mov    %edx,-0x19(%rbp)
180109633:	48 89 55 f7          	mov    %rdx,-0x9(%rbp)
180109637:	48 85 c9             	test   %rcx,%rcx
18010963a:	0f 84 d3 03 00 00    	je     0x180109a13
180109640:	f6 41 40 01          	testb  $0x1,0x40(%rcx)
180109644:	0f 84 c9 03 00 00    	je     0x180109a13
18010964a:	48 85 c0             	test   %rax,%rax
18010964d:	75 10                	jne    0x18010965f
18010964f:	48 8b d1             	mov    %rcx,%rdx
180109652:	48 8b 49 18          	mov    0x18(%rcx),%rcx
180109656:	e8 e9 e0 ff ff       	call   0x180107744
18010965b:	8b d8                	mov    %eax,%ebx
18010965d:	eb 19                	jmp    0x180109678
18010965f:	45 8b e0             	mov    %r8d,%r12d
180109662:	41 83 e4 02          	and    $0x2,%r12d
180109666:	74 17                	je     0x18010967f
180109668:	48 39 55 7f          	cmp    %rdx,0x7f(%rbp)
18010966c:	74 05                	je     0x180109673
18010966e:	4d 85 ed             	test   %r13,%r13
180109671:	74 11                	je     0x180109684
180109673:	bb 0d 00 00 c0       	mov    $0xc000000d,%ebx
180109678:	8b c3                	mov    %ebx,%eax
18010967a:	e9 99 03 00 00       	jmp    0x180109a18
18010967f:	4d 85 ed             	test   %r13,%r13
180109682:	75 05                	jne    0x180109689
180109684:	39 51 44             	cmp    %edx,0x44(%rcx)
180109687:	75 ea                	jne    0x180109673
180109689:	49 83 ce ff          	or     $0xffffffffffffffff,%r14
18010968d:	49 ff c6             	inc    %r14
180109690:	66 42 39 14 70       	cmp    %dx,(%rax,%r14,2)
180109695:	75 f6                	jne    0x18010968d
180109697:	89 55 5f             	mov    %edx,0x5f(%rbp)
18010969a:	8b da                	mov    %edx,%ebx
18010969c:	8b f2                	mov    %edx,%esi
18010969e:	44 8b fa             	mov    %edx,%r15d
1801096a1:	45 85 f6             	test   %r14d,%r14d
1801096a4:	74 66                	je     0x18010970c
1801096a6:	48 83 c1 28          	add    $0x28,%rcx
1801096aa:	48 89 45 ff          	mov    %rax,-0x1(%rbp)
1801096ae:	33 d2                	xor    %edx,%edx
1801096b0:	4c 8d 45 df          	lea    -0x21(%rbp),%r8
1801096b4:	48 89 55 17          	mov    %rdx,0x17(%rbp)
1801096b8:	0f 57 c0             	xorps  %xmm0,%xmm0
1801096bb:	48 8d 55 07          	lea    0x7(%rbp),%rdx
1801096bf:	48 89 54 24 28       	mov    %rdx,0x28(%rsp)
1801096c4:	48 8b d1             	mov    %rcx,%rdx
1801096c7:	0f b7 08             	movzwl (%rax),%ecx
1801096ca:	0f 11 45 07          	movups %xmm0,0x7(%rbp)
1801096ce:	e8 9d 2d 00 00       	call   0x18010c470
1801096d3:	33 d2                	xor    %edx,%edx
1801096d5:	8b d8                	mov    %eax,%ebx
1801096d7:	85 c0                	test   %eax,%eax
1801096d9:	78 9d                	js     0x180109678
1801096db:	03 75 df             	add    -0x21(%rbp),%esi
1801096de:	45 85 e4             	test   %r12d,%r12d
1801096e1:	74 05                	je     0x1801096e8
1801096e3:	3b 77 08             	cmp    0x8(%rdi),%esi
1801096e6:	77 1a                	ja     0x180109702
1801096e8:	48 8b 45 ff          	mov    -0x1(%rbp),%rax
1801096ec:	41 ff c7             	inc    %r15d
1801096ef:	48 83 c0 02          	add    $0x2,%rax
1801096f3:	48 89 45 ff          	mov    %rax,-0x1(%rbp)
1801096f7:	45 3b fe             	cmp    %r14d,%r15d
1801096fa:	73 0e                	jae    0x18010970a
1801096fc:	48 8d 4f 28          	lea    0x28(%rdi),%rcx
180109700:	eb ac                	jmp    0x1801096ae
180109702:	41 8b df             	mov    %r15d,%ebx
180109705:	89 5d 5f             	mov    %ebx,0x5f(%rbp)
180109708:	eb 02                	jmp    0x18010970c
18010970a:	8b da                	mov    %edx,%ebx
18010970c:	4c 8d 7f 28          	lea    0x28(%rdi),%r15
180109710:	4d 85 ff             	test   %r15,%r15
180109713:	0f 84 5a ff ff ff    	je     0x180109673
180109719:	4c 8d 45 ff          	lea    -0x1(%rbp),%r8
18010971d:	49 8b cf             	mov    %r15,%rcx
180109720:	48 8d 55 03          	lea    0x3(%rbp),%rdx
180109724:	e8 ef 03 00 00       	call   0x180109b18
180109729:	8b 45 03             	mov    0x3(%rbp),%eax
18010972c:	3b 47 0c             	cmp    0xc(%rdi),%eax
18010972f:	89 75 07             	mov    %esi,0x7(%rbp)
180109732:	0f 47 47 0c          	cmova  0xc(%rdi),%eax
180109736:	89 45 0b             	mov    %eax,0xb(%rbp)
180109739:	89 75 0f             	mov    %esi,0xf(%rbp)
18010973c:	4d 85 ed             	test   %r13,%r13
18010973f:	75 09                	jne    0x18010974a
180109741:	8b 47 08             	mov    0x8(%rdi),%eax
180109744:	3b f0                	cmp    %eax,%esi
180109746:	76 0e                	jbe    0x180109756
180109748:	eb 09                	jmp    0x180109753
18010974a:	45 39 75 00          	cmp    %r14d,0x0(%r13)
18010974e:	75 06                	jne    0x180109756
180109750:	8d 46 04             	lea    0x4(%rsi),%eax
180109753:	89 45 07             	mov    %eax,0x7(%rbp)
180109756:	41 bb 20 00 00 00    	mov    $0x20,%r11d
18010975c:	85 db                	test   %ebx,%ebx
18010975e:	74 4d                	je     0x1801097ad
180109760:	4c 8b 45 67          	mov    0x67(%rbp),%r8
180109764:	8b d3                	mov    %ebx,%edx
180109766:	4c 8b 4d 7f          	mov    0x7f(%rbp),%r9
18010976a:	8b c3                	mov    %ebx,%eax
18010976c:	49 8d 0c 40          	lea    (%r8,%rax,2),%rcx
180109770:	49 89 09             	mov    %rcx,(%r9)
180109773:	66 44 39 19          	cmp    %r11w,(%rcx)
180109777:	77 13                	ja     0x18010978c
180109779:	0f b7 01             	movzwl (%rcx),%eax
18010977c:	49 ba 00 26 00 00 01 	movabs $0x100002600,%r10
180109783:	00 00 00
180109786:	49 0f a3 c2          	bt     %rax,%r10
18010978a:	72 0b                	jb     0x180109797
18010978c:	48 83 e9 02          	sub    $0x2,%rcx
180109790:	83 c2 ff             	add    $0xffffffff,%edx
180109793:	74 18                	je     0x1801097ad
180109795:	eb dc                	jmp    0x180109773
180109797:	8d 4a 01             	lea    0x1(%rdx),%ecx
18010979a:	89 55 5f             	mov    %edx,0x5f(%rbp)
18010979d:	41 8d 46 ff          	lea    -0x1(%r14),%eax
1801097a1:	3b d0                	cmp    %eax,%edx
1801097a3:	0f 43 ca             	cmovae %edx,%ecx
1801097a6:	49 8d 0c 48          	lea    (%r8,%rcx,2),%rcx
1801097aa:	49 89 09             	mov    %rcx,(%r9)
1801097ad:	4c 8d 45 f7          	lea    -0x9(%rbp),%r8
1801097b1:	41 8b d3             	mov    %r11d,%edx
1801097b4:	48 8d 4d 07          	lea    0x7(%rbp),%rcx
1801097b8:	e8 0b e2 ff ff       	call   0x1801079c8
1801097bd:	8b d8                	mov    %eax,%ebx
1801097bf:	85 c0                	test   %eax,%eax
1801097c1:	0f 88 32 02 00 00    	js     0x1801099f9
1801097c7:	41 8b 17             	mov    (%r15),%edx
1801097ca:	4c 8b 7d f7          	mov    -0x9(%rbp),%r15
1801097ce:	49 8b cf             	mov    %r15,%rcx
1801097d1:	e8 26 e0 ff ff       	call   0x1801077fc
1801097d6:	45 33 d2             	xor    %r10d,%r10d
1801097d9:	4c 89 55 f7          	mov    %r10,-0x9(%rbp)
1801097dd:	41 8b ca             	mov    %r10d,%ecx
1801097e0:	89 4d ef             	mov    %ecx,-0x11(%rbp)
1801097e3:	41 8b d2             	mov    %r10d,%edx
1801097e6:	89 55 f3             	mov    %edx,-0xd(%rbp)
1801097e9:	45 8b e2             	mov    %r10d,%r12d
1801097ec:	41 8b f2             	mov    %r10d,%esi
1801097ef:	45 85 f6             	test   %r14d,%r14d
1801097f2:	74 7f                	je     0x180109873
1801097f4:	4c 8b 65 67          	mov    0x67(%rbp),%r12
1801097f8:	8b 45 5f             	mov    0x5f(%rbp),%eax
1801097fb:	85 c0                	test   %eax,%eax
1801097fd:	74 04                	je     0x180109803
1801097ff:	3b c6                	cmp    %esi,%eax
180109801:	74 6c                	je     0x18010986f
180109803:	45 0f b7 04 24       	movzwl (%r12),%r8d
180109808:	48 8d 45 df          	lea    -0x21(%rbp),%rax
18010980c:	48 89 44 24 30       	mov    %rax,0x30(%rsp)
180109811:	44 8b c9             	mov    %ecx,%r9d
180109814:	89 54 24 20          	mov    %edx,0x20(%rsp)
180109818:	49 8b cf             	mov    %r15,%rcx
18010981b:	48 8d 57 28          	lea    0x28(%rdi),%rdx
18010981f:	e8 78 05 00 00       	call   0x180109d9c
180109824:	45 33 d2             	xor    %r10d,%r10d
180109827:	8b d8                	mov    %eax,%ebx
180109829:	3d 05 00 00 80       	cmp    $0x80000005,%eax
18010982e:	74 3f                	je     0x18010986f
180109830:	85 c0                	test   %eax,%eax
180109832:	0f 88 c5 01 00 00    	js     0x1801099fd
180109838:	4d 85 ed             	test   %r13,%r13
18010983b:	74 14                	je     0x180109851
18010983d:	41 3b 75 00          	cmp    0x0(%r13),%esi
180109841:	75 0e                	jne    0x180109851
180109843:	48 8b 45 ef          	mov    -0x11(%rbp),%rax
180109847:	8b 4d df             	mov    -0x21(%rbp),%ecx
18010984a:	48 89 45 f7          	mov    %rax,-0x9(%rbp)
18010984e:	89 4d e7             	mov    %ecx,-0x19(%rbp)
180109851:	8b 4d ef             	mov    -0x11(%rbp),%ecx
180109854:	03 4d df             	add    -0x21(%rbp),%ecx
180109857:	89 4d ef             	mov    %ecx,-0x11(%rbp)
18010985a:	3b 4d 07             	cmp    0x7(%rbp),%ecx
18010985d:	77 10                	ja     0x18010986f
18010985f:	ff c6                	inc    %esi
180109861:	49 83 c4 02          	add    $0x2,%r12
180109865:	41 3b f6             	cmp    %r14d,%esi
180109868:	73 05                	jae    0x18010986f
18010986a:	8b 55 f3             	mov    -0xd(%rbp),%edx
18010986d:	eb 89                	jmp    0x1801097f8
18010986f:	44 8b 65 f7          	mov    -0x9(%rbp),%r12d
180109873:	4d 85 ed             	test   %r13,%r13
180109876:	0f 84 8b 00 00 00    	je     0x180109907
18010987c:	41 3b 75 00          	cmp    0x0(%r13),%esi
180109880:	75 12                	jne    0x180109894
180109882:	48 8b 45 ef          	mov    -0x11(%rbp),%rax
180109886:	be 04 00 00 00       	mov    $0x4,%esi
18010988b:	48 89 45 f7          	mov    %rax,-0x9(%rbp)
18010988f:	44 8b e0             	mov    %eax,%r12d
180109892:	eb 03                	jmp    0x180109897
180109894:	8b 75 e7             	mov    -0x19(%rbp),%esi
180109897:	8b 47 44             	mov    0x44(%rdi),%eax
18010989a:	8b 4f 08             	mov    0x8(%rdi),%ecx
18010989d:	03 c0                	add    %eax,%eax
18010989f:	8b 55 07             	mov    0x7(%rbp),%edx
1801098a2:	2b c8                	sub    %eax,%ecx
1801098a4:	3b d1                	cmp    %ecx,%edx
1801098a6:	76 62                	jbe    0x18010990a
1801098a8:	89 4d 07             	mov    %ecx,0x7(%rbp)
1801098ab:	4c 8d 45 e7          	lea    -0x19(%rbp),%r8
1801098af:	48 8d 4d 07          	lea    0x7(%rbp),%rcx
1801098b3:	ba 20 00 00 00       	mov    $0x20,%edx
1801098b8:	e8 0b e1 ff ff       	call   0x1801079c8
1801098bd:	45 33 d2             	xor    %r10d,%r10d
1801098c0:	8b d8                	mov    %eax,%ebx
1801098c2:	85 c0                	test   %eax,%eax
1801098c4:	0f 88 33 01 00 00    	js     0x1801099fd
1801098ca:	48 8b 4d e7          	mov    -0x19(%rbp),%rcx
1801098ce:	4c 8d 4d 5f          	lea    0x5f(%rbp),%r9
1801098d2:	41 8b d4             	mov    %r12d,%edx
1801098d5:	44 89 55 63          	mov    %r10d,0x63(%rbp)
1801098d9:	2b 55 07             	sub    0x7(%rbp),%edx
1801098dc:	4c 8d 45 ff          	lea    -0x1(%rbp),%r8
1801098e0:	03 d6                	add    %esi,%edx
1801098e2:	4c 89 55 ff          	mov    %r10,-0x1(%rbp)
1801098e6:	41 0f 48 d2          	cmovs  %r10d,%edx
1801098ea:	89 55 5f             	mov    %edx,0x5f(%rbp)
1801098ed:	44 2b e2             	sub    %edx,%r12d
1801098f0:	49 8b d7             	mov    %r15,%rdx
1801098f3:	e8 8c dd ff ff       	call   0x180107684
1801098f8:	49 8b cf             	mov    %r15,%rcx
1801098fb:	e8 40 e2 ff ff       	call   0x180107b40
180109900:	4c 8b 7d e7          	mov    -0x19(%rbp),%r15
180109904:	45 33 d2             	xor    %r10d,%r10d
180109907:	8b 55 07             	mov    0x7(%rbp),%edx
18010990a:	f6 47 40 04          	testb  $0x4,0x40(%rdi)
18010990e:	74 05                	je     0x180109915
180109910:	8b 47 44             	mov    0x44(%rdi),%eax
180109913:	eb 14                	jmp    0x180109929
180109915:	f6 47 40 08          	testb  $0x8,0x40(%rdi)
180109919:	8b 47 08             	mov    0x8(%rdi),%eax
18010991c:	74 07                	je     0x180109925
18010991e:	2b 47 44             	sub    0x44(%rdi),%eax
180109921:	2b c2                	sub    %edx,%eax
180109923:	eb 04                	jmp    0x180109929
180109925:	2b c2                	sub    %edx,%eax
180109927:	d1 e8                	shr    $1,%eax
180109929:	48 8b 4f 18          	mov    0x18(%rdi),%rcx
18010992d:	4c 8d 4d 5f          	lea    0x5f(%rbp),%r9
180109931:	4c 8d 45 ef          	lea    -0x11(%rbp),%r8
180109935:	89 45 ef             	mov    %eax,-0x11(%rbp)
180109938:	49 8b d7             	mov    %r15,%rdx
18010993b:	4c 89 55 5f          	mov    %r10,0x5f(%rbp)
18010993f:	e8 f8 da ff ff       	call   0x18010743c
180109944:	48 8b 75 5f          	mov    0x5f(%rbp),%rsi
180109948:	8b d8                	mov    %eax,%ebx
18010994a:	85 c0                	test   %eax,%eax
18010994c:	0f 88 98 00 00 00    	js     0x1801099ea
180109952:	4d 85 ed             	test   %r13,%r13
180109955:	74 5b                	je     0x1801099b2
180109957:	f6 45 6f 04          	testb  $0x4,0x6f(%rbp)
18010995b:	74 55                	je     0x1801099b2
18010995d:	8b 55 fb             	mov    -0x5(%rbp),%edx
180109960:	44 8b 46 08          	mov    0x8(%rsi),%r8d
180109964:	83 c2 02             	add    $0x2,%edx
180109967:	0f af 56 04          	imul   0x4(%rsi),%edx
18010996b:	44 8b 0e             	mov    (%rsi),%r9d
18010996e:	41 c1 e8 03          	shr    $0x3,%r8d
180109972:	ff c2                	inc    %edx
180109974:	41 03 d4             	add    %r12d,%edx
180109977:	41 0f af d0          	imul   %r8d,%edx
18010997b:	48 03 56 18          	add    0x18(%rsi),%rdx
18010997f:	41 83 c1 fc          	add    $0xfffffffc,%r9d
180109983:	74 2d                	je     0x1801099b2
180109985:	45 8b d8             	mov    %r8d,%r11d
180109988:	48 8b ca             	mov    %rdx,%rcx
18010998b:	41 ba 02 00 00 00    	mov    $0x2,%r10d
180109991:	f6 11                	notb   (%rcx)
180109993:	f6 51 01             	notb   0x1(%rcx)
180109996:	f6 51 02             	notb   0x2(%rcx)
180109999:	49 03 cb             	add    %r11,%rcx
18010999c:	49 83 ea 01          	sub    $0x1,%r10
1801099a0:	75 ef                	jne    0x180109991
1801099a2:	8b 46 04             	mov    0x4(%rsi),%eax
1801099a5:	41 0f af c0          	imul   %r8d,%eax
1801099a9:	48 03 d0             	add    %rax,%rdx
1801099ac:	41 83 c1 ff          	add    $0xffffffff,%r9d
1801099b0:	75 d6                	jne    0x180109988
1801099b2:	f6 47 40 01          	testb  $0x1,0x40(%rdi)
1801099b6:	74 10                	je     0x1801099c8
1801099b8:	48 8b 4f 18          	mov    0x18(%rdi),%rcx
1801099bc:	48 8b d7             	mov    %rdi,%rdx
1801099bf:	e8 80 dd ff ff       	call   0x180107744
1801099c4:	8b d8                	mov    %eax,%ebx
1801099c6:	eb 05                	jmp    0x1801099cd
1801099c8:	bb 0d 00 00 c0       	mov    $0xc000000d,%ebx
1801099cd:	85 db                	test   %ebx,%ebx
1801099cf:	78 19                	js     0x1801099ea
1801099d1:	8b 47 04             	mov    0x4(%rdi),%eax
1801099d4:	48 8d 55 ef          	lea    -0x11(%rbp),%rdx
1801099d8:	89 45 f3             	mov    %eax,-0xd(%rbp)
1801099db:	48 8b ce             	mov    %rsi,%rcx
1801099de:	8b 07                	mov    (%rdi),%eax
1801099e0:	01 45 ef             	add    %eax,-0x11(%rbp)
1801099e3:	e8 5c dd ff ff       	call   0x180107744
1801099e8:	8b d8                	mov    %eax,%ebx
1801099ea:	48 85 f6             	test   %rsi,%rsi
1801099ed:	74 0e                	je     0x1801099fd
1801099ef:	48 8b ce             	mov    %rsi,%rcx
1801099f2:	e8 49 e1 ff ff       	call   0x180107b40
1801099f7:	eb 04                	jmp    0x1801099fd