18010c5dc:	48 85 ff             	test   %rdi,%rdi
18010c5df:	74 0e                	je     0x18010c5ef
18010c5e1:	49 83 3e 00          	cmpq   $0x0,(%r14)
18010c5e5:	75 08                	jne    0x18010c5ef
18010c5e7:	48 8b cf             	mov    %rdi,%rcx
18010c5ea:	e8 0d da f8 ff       	call   0x180099ffc
18010c5ef:	48 8b 9c 24 08 01 00 	mov    0x108(%rsp),%rbx
18010c5f6:	00
18010c5f7:	8b c6                	mov    %esi,%eax
18010c5f9:	48 81 c4 c0 00 00 00 	add    $0xc0,%rsp
18010c600:	41 5f                	pop    %r15
18010c602:	41 5e                	pop    %r14
18010c604:	41 5d                	pop    %r13
18010c606:	41 5c                	pop    %r12
18010c608:	5f                   	pop    %rdi
18010c609:	5e                   	pop    %rsi
18010c60a:	5d                   	pop    %rbp
18010c60b:	c3                   	ret
18010c60c:	cc                   	int3
18010c60d:	cc                   	int3
18010c60e:	cc                   	int3
18010c60f:	cc                   	int3
18010c610:	48 89 5c 24 08       	mov    %rbx,0x8(%rsp)
18010c615:	48 89 74 24 10       	mov    %rsi,0x10(%rsp)
18010c61a:	57                   	push   %rdi
18010c61b:	48 83 ec 20          	sub    $0x20,%rsp
18010c61f:	48 8b 5a 10          	mov    0x10(%rdx),%rbx
18010c623:	48 8b f1             	mov    %rcx,%rsi
18010c626:	48 8b 0a             	mov    (%rdx),%rcx
18010c629:	48 83 c3 0f          	add    $0xf,%rbx
18010c62d:	48 83 e3 f0          	and    $0xfffffffffffffff0,%rbx
18010c631:	48 8b fa             	mov    %rdx,%rdi
18010c634:	48 85 c9             	test   %rcx,%rcx
18010c637:	75 1a                	jne    0x18010c653
18010c639:	48 8b ce             	mov    %rsi,%rcx
18010c63c:	e8 0f d8 f8 ff       	call   0x180099e50
18010c641:	48 8b d0             	mov    %rax,%rdx
18010c644:	48 85 c0             	test   %rax,%rax
18010c647:	74 26                	je     0x18010c66f
18010c649:	48 8d 0c 33          	lea    (%rbx,%rsi,1),%rcx
18010c64d:	48 89 4f 10          	mov    %rcx,0x10(%rdi)
18010c651:	eb 1c                	jmp    0x18010c66f
18010c653:	48 8b 42 08          	mov    0x8(%rdx),%rax
18010c657:	48 2b c3             	sub    %rbx,%rax
18010c65a:	48 3b f0             	cmp    %rax,%rsi
18010c65d:	77 0e                	ja     0x18010c66d
18010c65f:	48 8d 04 33          	lea    (%rbx,%rsi,1),%rax
18010c663:	48 89 47 10          	mov    %rax,0x10(%rdi)
18010c667:	48 8d 14 19          	lea    (%rcx,%rbx,1),%rdx
18010c66b:	eb 02                	jmp    0x18010c66f
18010c66d:	33 d2                	xor    %edx,%edx
18010c66f:	48 8b 5c 24 30       	mov    0x30(%rsp),%rbx
18010c674:	48 8b c2             	mov    %rdx,%rax
18010c677:	48 8b 74 24 38       	mov    0x38(%rsp),%rsi
18010c67c:	48 83 c4 20          	add    $0x20,%rsp
18010c680:	5f                   	pop    %rdi
18010c681:	c3                   	ret
18010c682:	cc                   	int3
18010c683:	cc                   	int3
18010c684:	48 89 5c 24 08       	mov    %rbx,0x8(%rsp)
18010c689:	48 89 74 24 10       	mov    %rsi,0x10(%rsp)
18010c68e:	48 89 7c 24 18       	mov    %rdi,0x18(%rsp)
18010c693:	41 56                	push   %r14
18010c695:	48 83 ec 20          	sub    $0x20,%rsp
18010c699:	8b 59 04             	mov    0x4(%rcx),%ebx
18010c69c:	4d 8b f0             	mov    %r8,%r14
18010c69f:	0f af 19             	imul   (%rcx),%ebx
18010c6a2:	8b f2                	mov    %edx,%esi
18010c6a4:	48 8b f9             	mov    %rcx,%rdi
18010c6a7:	0f af da             	imul   %edx,%ebx
18010c6aa:	83 c3 07             	add    $0x7,%ebx
18010c6ad:	c1 eb 03             	shr    $0x3,%ebx
18010c6b0:	83 c3 48             	add    $0x48,%ebx
18010c6b3:	81 fb 00 10 00 00    	cmp    $0x1000,%ebx
18010c6b9:	72 0c                	jb     0x18010c6c7
18010c6bb:	81 c3 ff 0f 00 00    	add    $0xfff,%ebx
18010c6c1:	81 e3 00 f0 ff ff    	and    $0xfffff000,%ebx
18010c6c7:	8b cb                	mov    %ebx,%ecx
18010c6c9:	49 8b d1             	mov    %r9,%rdx
18010c6cc:	e8 3f ff ff ff       	call   0x18010c610
18010c6d1:	4c 8b c0             	mov    %rax,%r8
18010c6d4:	48 85 c0             	test   %rax,%rax
18010c6d7:	75 07                	jne    0x18010c6e0
18010c6d9:	b8 17 00 00 c0       	mov    $0xc0000017,%eax
18010c6de:	eb 10                	jmp    0x18010c6f0
18010c6e0:	44 8b cb             	mov    %ebx,%r9d
18010c6e3:	8b d6                	mov    %esi,%edx
18010c6e5:	48 8b cf             	mov    %rdi,%rcx
18010c6e8:	e8 fb b3 ff ff       	call   0x180107ae8
18010c6ed:	4d 89 06             	mov    %r8,(%r14)
18010c6f0:	48 8b 5c 24 30       	mov    0x30(%rsp),%rbx
18010c6f5:	48 8b 74 24 38       	mov    0x38(%rsp),%rsi
18010c6fa:	48 8b 7c 24 40       	mov    0x40(%rsp),%rdi
18010c6ff:	48 83 c4 20          	add    $0x20,%rsp
18010c703:	41 5e                	pop    %r14
18010c705:	c3                   	ret
18010c706:	cc                   	int3
18010c707:	cc                   	int3
18010c708:	48 83 ec 38          	sub    $0x38,%rsp
18010c70c:	b9 01 00 00 00       	mov    $0x1,%ecx
18010c711:	e8 9e 84 f1 ff       	call   0x180024bb4
18010c716:	84 c0                	test   %al,%al
18010c718:	74 21                	je     0x18010c73b
18010c71a:	33 d2                	xor    %edx,%edx
18010c71c:	4c 8d 44 24 20       	lea    0x20(%rsp),%r8
18010c721:	0f 57 c0             	xorps  %xmm0,%xmm0
18010c724:	0f 11 44 24 20       	movups %xmm0,0x20(%rsp)
18010c729:	8d 4a 01             	lea    0x1(%rdx),%ecx
18010c72c:	e8 6f 74 02 00       	call   0x180133ba0
18010c731:	f7 44 24 28 00 00 00 	testl  $0x80000000,0x28(%rsp)
18010c738:	80
18010c739:	75 1c                	jne    0x18010c757
18010c73b:	81 3d 83 92 08 00 00 	cmpl   $0x400,0x89283(%rip)        # 0x1801959c8
18010c742:	04 00 00
18010c745:	75 10                	jne    0x18010c757
18010c747:	81 3d 73 92 08 00 00 	cmpl   $0x300,0x89273(%rip)        # 0x1801959c4
18010c74e:	03 00 00
18010c751:	75 04                	jne    0x18010c757
18010c753:	b0 01                	mov    $0x1,%al
18010c755:	eb 02                	jmp    0x18010c759
18010c757:	32 c0                	xor    %al,%al
18010c759:	48 83 c4 38          	add    $0x38,%rsp
18010c75d:	c3                   	ret
18010c75e:	cc                   	int3
18010c75f:	cc                   	int3
18010c760:	40 53                	rex push %rbx
18010c762:	48 83 ec 30          	sub    $0x30,%rsp
18010c766:	49 8b d8             	mov    %r8,%rbx
18010c769:	c7 44 24 28 02 00 00 	movl   $0x2,0x28(%rsp)
18010c770:	00
18010c771:	48 83 64 24 20 00    	andq   $0x0,0x20(%rsp)
18010c777:	4c 8b cb             	mov    %rbx,%r9
18010c77a:	44 8b c2             	mov    %edx,%r8d
18010c77d:	ba 04 00 00 00       	mov    $0x4,%edx
18010c782:	e8 c9 c7 f5 ff       	call   0x180068f50
18010c787:	85 c0                	test   %eax,%eax
18010c789:	78 08                	js     0x18010c793
18010c78b:	8b 03                	mov    (%rbx),%eax
18010c78d:	0f c8                	bswap  %eax
18010c78f:	89 03                	mov    %eax,(%rbx)
18010c791:	33 c0                	xor    %eax,%eax
18010c793:	48 83 c4 30          	add    $0x30,%rsp
18010c797:	5b                   	pop    %rbx
18010c798:	c3                   	ret
18010c799:	cc                   	int3
18010c79a:	cc                   	int3
18010c79b:	cc                   	int3
18010c79c:	40 53                	rex push %rbx
18010c79e:	48 83 ec 30          	sub    $0x30,%rsp
18010c7a2:	49 8b d8             	mov    %r8,%rbx
18010c7a5:	44 8b c2             	mov    %edx,%r8d
18010c7a8:	ba 02 00 00 00       	mov    $0x2,%edx
18010c7ad:	4c 8b cb             	mov    %rbx,%r9
18010c7b0:	89 54 24 28          	mov    %edx,0x28(%rsp)
18010c7b4:	48 83 64 24 20 00    	andq   $0x0,0x20(%rsp)
18010c7ba:	e8 91 c7 f5 ff       	call   0x180068f50
18010c7bf:	85 c0                	test   %eax,%eax
18010c7c1:	78 0c                	js     0x18010c7cf
18010c7c3:	0f b7 03             	movzwl (%rbx),%eax
18010c7c6:	66 c1 c8 08          	ror    $0x8,%ax
18010c7ca:	66 89 03             	mov    %ax,(%rbx)
18010c7cd:	33 c0                	xor    %eax,%eax
18010c7cf:	48 83 c4 30          	add    $0x30,%rsp
18010c7d3:	5b                   	pop    %rbx
18010c7d4:	c3                   	ret
18010c7d5:	cc                   	int3
18010c7d6:	cc                   	int3
18010c7d7:	cc                   	int3
18010c7d8:	48 89 5c 24 08       	mov    %rbx,0x8(%rsp)
18010c7dd:	48 89 6c 24 10       	mov    %rbp,0x10(%rsp)
18010c7e2:	48 89 74 24 18       	mov    %rsi,0x18(%rsp)
18010c7e7:	57                   	push   %rdi
18010c7e8:	41 54                	push   %r12
18010c7ea:	41 55                	push   %r13
18010c7ec:	41 56                	push   %r14
18010c7ee:	41 57                	push   %r15
18010c7f0:	48 83 ec 20          	sub    $0x20,%rsp
18010c7f4:	83 39 04             	cmpl   $0x4,(%rcx)
18010c7f7:	48 8b d9             	mov    %rcx,%rbx
18010c7fa:	77 0a                	ja     0x18010c806
18010c7fc:	b9 bb 00 00 c0       	mov    $0xc00000bb,%ecx
18010c801:	e9 94 01 00 00       	jmp    0x18010c99a
18010c806:	83 fa 1c             	cmp    $0x1c,%edx
18010c809:	0f 82 86 01 00 00    	jb     0x18010c995
18010c80f:	8b 71 04             	mov    0x4(%rcx),%esi
18010c812:	3b f2                	cmp    %edx,%esi
18010c814:	0f 87 7b 01 00 00    	ja     0x18010c995
18010c81a:	44 8b 71 0c          	mov    0xc(%rcx),%r14d
18010c81e:	41 b8 ff ff ff ff    	mov    $0xffffffff,%r8d
18010c824:	4b 8d 04 76          	lea    (%r14,%r14,2),%rax
18010c828:	48 c1 e0 03          	shl    $0x3,%rax
18010c82c:	49 3b c0             	cmp    %r8,%rax
18010c82f:	0f 87 59 01 00 00    	ja     0x18010c98e
18010c835:	8d 68 1c             	lea    0x1c(%rax),%ebp
18010c838:	83 fd 1c             	cmp    $0x1c,%ebp
18010c83b:	0f 82 4d 01 00 00    	jb     0x18010c98e
18010c841:	3b ee                	cmp    %esi,%ebp
18010c843:	0f 87 4c 01 00 00    	ja     0x18010c995
18010c849:	45 33 ff             	xor    %r15d,%r15d
18010c84c:	45 85 f6             	test   %r14d,%r14d
18010c84f:	0f 84 16 01 00 00    	je     0x18010c96b
18010c855:	44 8b 61 10          	mov    0x10(%rcx),%r12d
18010c859:	41 bd ff ff 00 00    	mov    $0xffff,%r13d
18010c85f:	4b 8d 0c 7f          	lea    (%r15,%r15,2),%rcx
18010c863:	49 8d 3c cc          	lea    (%r12,%rcx,8),%rdi
18010c867:	48 03 fb             	add    %rbx,%rdi
18010c86a:	8b 4f 08             	mov    0x8(%rdi),%ecx
18010c86d:	41 3b cd             	cmp    %r13d,%ecx
18010c870:	0f 87 1f 01 00 00    	ja     0x18010c995
18010c876:	44 39 6f 0c          	cmp    %r13d,0xc(%rdi)
18010c87a:	0f 87 15 01 00 00    	ja     0x18010c995
18010c880:	8b 47 04             	mov    0x4(%rdi),%eax
18010c883:	85 c0                	test   %eax,%eax
18010c885:	74 08                	je     0x18010c88f
18010c887:	3b c5                	cmp    %ebp,%eax
18010c889:	0f 82 06 01 00 00    	jb     0x18010c995
18010c88f:	03 c8                	add    %eax,%ecx
18010c891:	3b c8                	cmp    %eax,%ecx
18010c893:	0f 82 f5 00 00 00    	jb     0x18010c98e
18010c899:	3b ce                	cmp    %esi,%ecx
18010c89b:	0f 87 f4 00 00 00    	ja     0x18010c995
18010c8a1:	44 0f b7 47 0c       	movzwl 0xc(%rdi),%r8d
18010c8a6:	48 8d 14 03          	lea    (%rbx,%rax,1),%rdx
18010c8aa:	66 41 d1 e8          	shr    $1,%r8w
18010c8ae:	48 8b cb             	mov    %rbx,%rcx
18010c8b1:	e8 12 02 00 00       	call   0x18010cac8
18010c8b6:	48 3b c7             	cmp    %rdi,%rax
18010c8b9:	0f 85 d6 00 00 00    	jne    0x18010c995
18010c8bf:	8b 47 10             	mov    0x10(%rdi),%eax
18010c8c2:	85 c0                	test   %eax,%eax
18010c8c4:	74 08                	je     0x18010c8ce
18010c8c6:	3b c5                	cmp    %ebp,%eax
18010c8c8:	0f 82 c7 00 00 00    	jb     0x18010c995
18010c8ce:	44 8b 4f 14          	mov    0x14(%rdi),%r9d
18010c8d2:	41 b8 ff ff ff ff    	mov    $0xffffffff,%r8d
18010c8d8:	4b 8d 0c 89          	lea    (%r9,%r9,4),%rcx
18010c8dc:	48 c1 e1 02          	shl    $0x2,%rcx
18010c8e0:	49 3b c8             	cmp    %r8,%rcx
18010c8e3:	0f 87 a5 00 00 00    	ja     0x18010c98e
18010c8e9:	8d 14 08             	lea    (%rax,%rcx,1),%edx
18010c8ec:	3b d0                	cmp    %eax,%edx
18010c8ee:	0f 82 9a 00 00 00    	jb     0x18010c98e
18010c8f4:	3b d6                	cmp    %esi,%edx
18010c8f6:	0f 87 99 00 00 00    	ja     0x18010c995
18010c8fc:	33 d2                	xor    %edx,%edx
18010c8fe:	45 85 c9             	test   %r9d,%r9d
18010c901:	74 5c                	je     0x18010c95f
18010c903:	4c 8b d8             	mov    %rax,%r11
18010c906:	48 8d 0c 92          	lea    (%rdx,%rdx,4),%rcx
18010c90a:	49 8d 04 8b          	lea    (%r11,%rcx,4),%rax
18010c90e:	48 03 c3             	add    %rbx,%rax
18010c911:	44 8b 40 08          	mov    0x8(%rax),%r8d
18010c915:	45 3b c5             	cmp    %r13d,%r8d
18010c918:	77 7b                	ja     0x18010c995
18010c91a:	44 8b 50 10          	mov    0x10(%rax),%r10d
18010c91e:	45 3b d5             	cmp    %r13d,%r10d
18010c921:	77 72                	ja     0x18010c995
18010c923:	8b 48 04             	mov    0x4(%rax),%ecx
18010c926:	85 c9                	test   %ecx,%ecx
18010c928:	74 04                	je     0x18010c92e
18010c92a:	3b cd                	cmp    %ebp,%ecx
18010c92c:	72 67                	jb     0x18010c995
18010c92e:	44 03 c1             	add    %ecx,%r8d
18010c931:	44 3b c1             	cmp    %ecx,%r8d
18010c934:	72 58                	jb     0x18010c98e
18010c936:	44 3b c6             	cmp    %esi,%r8d
18010c939:	77 5a                	ja     0x18010c995
18010c93b:	8b 48 0c             	mov    0xc(%rax),%ecx
18010c93e:	85 c9                	test   %ecx,%ecx
18010c940:	74 04                	je     0x18010c946
18010c942:	3b cd                	cmp    %ebp,%ecx
18010c944:	72 4f                	jb     0x18010c995
18010c946:	41 8d 04 0a          	lea    (%r10,%rcx,1),%eax
18010c94a:	3b c1                	cmp    %ecx,%eax
18010c94c:	72 40                	jb     0x18010c98e
18010c94e:	3b c6                	cmp    %esi,%eax
18010c950:	77 43                	ja     0x18010c995
18010c952:	ff c2                	inc    %edx
18010c954:	41 3b d1             	cmp    %r9d,%edx
18010c957:	72 ad                	jb     0x18010c906
18010c959:	41 b8 ff ff ff ff    	mov    $0xffffffff,%r8d
18010c95f:	41 ff c7             	inc    %r15d
18010c962:	45 3b fe             	cmp    %r14d,%r15d
18010c965:	0f 82 f4 fe ff ff    	jb     0x18010c85f
18010c96b:	49 8b ce             	mov    %r14,%rcx
18010c96e:	48 c1 e1 03          	shl    $0x3,%rcx
18010c972:	49 3b c8             	cmp    %r8,%rcx
18010c975:	77 17                	ja     0x18010c98e
18010c977:	8b 43 14             	mov    0x14(%rbx),%eax
18010c97a:	8d 14 08             	lea    (%rax,%rcx,1),%edx
18010c97d:	3b d0                	cmp    %eax,%edx
18010c97f:	72 0d                	jb     0x18010c98e
18010c981:	3b f2                	cmp    %edx,%esi
18010c983:	b9 e4 00 00 c0       	mov    $0xc00000e4,%ecx
18010c988:	1b c0                	sbb    %eax,%eax
18010c98a:	23 c8                	and    %eax,%ecx
18010c98c:	eb 0c                	jmp    0x18010c99a
18010c98e:	b9 95 00 00 c0       	mov    $0xc0000095,%ecx
18010c993:	eb 05                	jmp    0x18010c99a
18010c995:	b9 e4 00 00 c0       	mov    $0xc00000e4,%ecx
18010c99a:	48 8b 5c 24 50       	mov    0x50(%rsp),%rbx
18010c99f:	8b c1                	mov    %ecx,%eax
18010c9a1:	48 8b 6c 24 58       	mov    0x58(%rsp),%rbp
18010c9a6:	48 8b 74 24 60       	mov    0x60(%rsp),%rsi
18010c9ab:	48 83 c4 20          	add    $0x20,%rsp
18010c9af:	41 5f                	pop    %r15
18010c9b1:	41 5e                	pop    %r14
18010c9b3:	41 5d                	pop    %r13
18010c9b5:	41 5c                	pop    %r12
18010c9b7:	5f                   	pop    %rdi
18010c9b8:	c3                   	ret
18010c9b9:	cc                   	int3
18010c9ba:	cc                   	int3
18010c9bb:	cc                   	int3
18010c9bc:	48 8b c4             	mov    %rsp,%rax
18010c9bf:	48 89 58 08          	mov    %rbx,0x8(%rax)
18010c9c3:	48 89 70 10          	mov    %rsi,0x10(%rax)
18010c9c7:	48 89 78 18          	mov    %rdi,0x18(%rax)
18010c9cb:	4c 89 70 20          	mov    %r14,0x20(%rax)
18010c9cf:	41 57                	push   %r15
18010c9d1:	48 83 ec 20          	sub    $0x20,%rsp
18010c9d5:	48 8b 74 24 50       	mov    0x50(%rsp),%rsi
18010c9da:	0f 57 c0             	xorps  %xmm0,%xmm0
18010c9dd:	48 8b f9             	mov    %rcx,%rdi
18010c9e0:	33 db                	xor    %ebx,%ebx
18010c9e2:	4d 8b f9             	mov    %r9,%r15
18010c9e5:	4d 8b f0             	mov    %r8,%r14
18010c9e8:	0f 11 06             	movups %xmm0,(%rsi)
18010c9eb:	0f b7 0a             	movzwl (%rdx),%ecx
18010c9ee:	83 f9 08             	cmp    $0x8,%ecx
18010c9f1:	0f 82 af 00 00 00    	jb     0x18010caa6
18010c9f7:	48 8b 52 08          	mov    0x8(%rdx),%rdx
18010c9fb:	49 b8 df ff df ff df 	movabs $0xffffffdfffdfffdf,%r8
18010ca02:	ff ff ff
18010ca05:	48 8b 02             	mov    (%rdx),%rax
18010ca08:	49 23 c0             	and    %r8,%rax
18010ca0b:	49 b8 41 00 50 00 49 	movabs $0x2d004900500041,%r8
18010ca12:	00 2d 00
18010ca15:	49 3b c0             	cmp    %r8,%rax
18010ca18:	74 0f                	je     0x18010ca29
18010ca1a:	49 b8 45 00 58 00 54 	movabs $0x2d005400580045,%r8
18010ca21:	00 2d 00
18010ca24:	49 3b c0             	cmp    %r8,%rax
18010ca27:	75 7d                	jne    0x18010caa6
18010ca29:	48 8b c1             	mov    %rcx,%rax
18010ca2c:	48 03 ca             	add    %rdx,%rcx
18010ca2f:	eb 0d                	jmp    0x18010ca3e
18010ca31:	83 c0 fe             	add    $0xfffffffe,%eax
18010ca34:	48 8d 49 fe          	lea    -0x2(%rcx),%rcx
18010ca38:	66 83 39 2d          	cmpw   $0x2d,(%rcx)