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)
18010ca3c:	74 05                	je     0x18010ca43
18010ca3e:	83 f8 01             	cmp    $0x1,%eax
18010ca41:	77 ee                	ja     0x18010ca31
18010ca43:	66 d1 e8             	shr    $1,%ax
18010ca46:	74 5e                	je     0x18010caa6
18010ca48:	44 0f b7 c0          	movzwl %ax,%r8d
18010ca4c:	48 8b cf             	mov    %rdi,%rcx
18010ca4f:	e8 74 00 00 00       	call   0x18010cac8
18010ca54:	48 85 c0             	test   %rax,%rax
18010ca57:	74 4d                	je     0x18010caa6
18010ca59:	4d 85 f6             	test   %r14,%r14
18010ca5c:	74 22                	je     0x18010ca80
18010ca5e:	83 78 14 01          	cmpl   $0x1,0x14(%rax)
18010ca62:	76 1c                	jbe    0x18010ca80
18010ca64:	45 0f b7 06          	movzwl (%r14),%r8d
18010ca68:	4c 8b cf             	mov    %rdi,%r9
18010ca6b:	49 8b 56 08          	mov    0x8(%r14),%rdx
18010ca6f:	48 8b c8             	mov    %rax,%rcx
18010ca72:	66 41 d1 e8          	shr    $1,%r8w
18010ca76:	e8 3d 01 00 00       	call   0x18010cbb8
18010ca7b:	48 8b c8             	mov    %rax,%rcx
18010ca7e:	eb 0b                	jmp    0x18010ca8b
18010ca80:	39 58 14             	cmp    %ebx,0x14(%rax)
18010ca83:	76 21                	jbe    0x18010caa6
18010ca85:	8b 48 10             	mov    0x10(%rax),%ecx
18010ca88:	48 03 cf             	add    %rdi,%rcx
18010ca8b:	8b 41 0c             	mov    0xc(%rcx),%eax
18010ca8e:	b3 01                	mov    $0x1,%bl
18010ca90:	48 03 c7             	add    %rdi,%rax
18010ca93:	48 89 46 08          	mov    %rax,0x8(%rsi)
18010ca97:	0f b7 41 10          	movzwl 0x10(%rcx),%eax
18010ca9b:	66 89 46 02          	mov    %ax,0x2(%rsi)
18010ca9f:	0f b7 41 10          	movzwl 0x10(%rcx),%eax
18010caa3:	66 89 06             	mov    %ax,(%rsi)
18010caa6:	48 8b 74 24 38       	mov    0x38(%rsp),%rsi
18010caab:	33 c0                	xor    %eax,%eax
18010caad:	48 8b 7c 24 40       	mov    0x40(%rsp),%rdi
18010cab2:	4c 8b 74 24 48       	mov    0x48(%rsp),%r14
18010cab7:	41 88 1f             	mov    %bl,(%r15)
18010caba:	48 8b 5c 24 30       	mov    0x30(%rsp),%rbx
18010cabf:	48 83 c4 20          	add    $0x20,%rsp
18010cac3:	41 5f                	pop    %r15
18010cac5:	c3                   	ret
18010cac6:	cc                   	int3
18010cac7:	cc                   	int3
18010cac8:	48 8b c4             	mov    %rsp,%rax
18010cacb:	48 89 58 08          	mov    %rbx,0x8(%rax)
18010cacf:	48 89 68 10          	mov    %rbp,0x10(%rax)
18010cad3:	48 89 70 18          	mov    %rsi,0x18(%rax)
18010cad7:	48 89 78 20          	mov    %rdi,0x20(%rax)
18010cadb:	41 56                	push   %r14
18010cadd:	48 83 ec 30          	sub    $0x30,%rsp
18010cae1:	45 0f b7 d8          	movzwl %r8w,%r11d
18010cae5:	45 33 f6             	xor    %r14d,%r14d
18010cae8:	48 8b ea             	mov    %rdx,%rbp
18010caeb:	4c 8b d1             	mov    %rcx,%r10
18010caee:	41 8b fe             	mov    %r14d,%edi
18010caf1:	4c 8b c2             	mov    %rdx,%r8
18010caf4:	66 45 3b f3          	cmp    %r11w,%r14w
18010caf8:	73 2a                	jae    0x18010cb24
18010cafa:	8b 59 18             	mov    0x18(%rcx),%ebx
18010cafd:	45 8b cb             	mov    %r11d,%r9d
18010cb00:	41 0f b7 10          	movzwl (%r8),%edx
18010cb04:	4d 8d 40 02          	lea    0x2(%r8),%r8
18010cb08:	8d 4a 20             	lea    0x20(%rdx),%ecx
18010cb0b:	8d 42 bf             	lea    -0x41(%rdx),%eax
18010cb0e:	66 83 f8 19          	cmp    $0x19,%ax
18010cb12:	66 0f 47 ca          	cmova  %dx,%cx
18010cb16:	0f af fb             	imul   %ebx,%edi
18010cb19:	0f b7 c9             	movzwl %cx,%ecx
18010cb1c:	03 f9                	add    %ecx,%edi
18010cb1e:	49 83 e9 01          	sub    $0x1,%r9
18010cb22:	75 dc                	jne    0x18010cb00
18010cb24:	41 8b 4a 0c          	mov    0xc(%r10),%ecx
18010cb28:	49 8b de             	mov    %r14,%rbx
18010cb2b:	83 e9 01             	sub    $0x1,%ecx
18010cb2e:	45 8b c6             	mov    %r14d,%r8d
18010cb31:	78 27                	js     0x18010cb5a
18010cb33:	41 8b 72 14          	mov    0x14(%r10),%esi
18010cb37:	41 8d 14 08          	lea    (%r8,%rcx,1),%edx
18010cb3b:	d1 fa                	sar    $1,%edx
18010cb3d:	48 63 c2             	movslq %edx,%rax
18010cb40:	4c 8d 0c c6          	lea    (%rsi,%rax,8),%r9
18010cb44:	43 3b 3c 11          	cmp    (%r9,%r10,1),%edi
18010cb48:	73 05                	jae    0x18010cb4f
18010cb4a:	8d 4a ff             	lea    -0x1(%rdx),%ecx
18010cb4d:	eb 06                	jmp    0x18010cb55
18010cb4f:	76 28                	jbe    0x18010cb79
18010cb51:	44 8d 42 01          	lea    0x1(%rdx),%r8d
18010cb55:	44 3b c1             	cmp    %ecx,%r8d
18010cb58:	7e dd                	jle    0x18010cb37
18010cb5a:	48 8b c3             	mov    %rbx,%rax
18010cb5d:	48 8b 5c 24 40       	mov    0x40(%rsp),%rbx
18010cb62:	48 8b 6c 24 48       	mov    0x48(%rsp),%rbp
18010cb67:	48 8b 74 24 50       	mov    0x50(%rsp),%rsi
18010cb6c:	48 8b 7c 24 58       	mov    0x58(%rsp),%rdi
18010cb71:	48 83 c4 30          	add    $0x30,%rsp
18010cb75:	41 5e                	pop    %r14
18010cb77:	c3                   	ret
18010cb78:	cc                   	int3
18010cb79:	43 8b 44 11 04       	mov    0x4(%r9,%r10,1),%eax
18010cb7e:	41 8b 4a 10          	mov    0x10(%r10),%ecx
18010cb82:	49 03 ca             	add    %r10,%rcx
18010cb85:	48 8d 14 40          	lea    (%rax,%rax,2),%rdx
18010cb89:	48 8d 1c d1          	lea    (%rcx,%rdx,8),%rbx
18010cb8d:	48 85 db             	test   %rbx,%rbx
18010cb90:	74 c8                	je     0x18010cb5a
18010cb92:	44 8b 4b 0c          	mov    0xc(%rbx),%r9d
18010cb96:	49 8b d3             	mov    %r11,%rdx
18010cb99:	44 8b 43 04          	mov    0x4(%rbx),%r8d
18010cb9d:	48 8b cd             	mov    %rbp,%rcx
18010cba0:	49 d1 e9             	shr    $1,%r9
18010cba3:	4d 03 c2             	add    %r10,%r8
18010cba6:	c6 44 24 20 01       	movb   $0x1,0x20(%rsp)
18010cbab:	e8 ec 0d f7 ff       	call   0x18007d99c
18010cbb0:	85 c0                	test   %eax,%eax
18010cbb2:	74 a6                	je     0x18010cb5a
18010cbb4:	33 c0                	xor    %eax,%eax
18010cbb6:	eb a5                	jmp    0x18010cb5d
18010cbb8:	48 8b c4             	mov    %rsp,%rax
18010cbbb:	48 89 58 08          	mov    %rbx,0x8(%rax)
18010cbbf:	48 89 68 18          	mov    %rbp,0x18(%rax)
18010cbc3:	48 89 70 20          	mov    %rsi,0x20(%rax)
18010cbc7:	48 89 50 10          	mov    %rdx,0x10(%rax)
18010cbcb:	57                   	push   %rdi
18010cbcc:	41 54                	push   %r12
18010cbce:	41 55                	push   %r13
18010cbd0:	41 56                	push   %r14
18010cbd2:	41 57                	push   %r15
18010cbd4:	48 83 ec 30          	sub    $0x30,%rsp
18010cbd8:	44 8b 61 10          	mov    0x10(%rcx),%r12d
18010cbdc:	41 be 01 00 00 00    	mov    $0x1,%r14d
18010cbe2:	8b 59 14             	mov    0x14(%rcx),%ebx
18010cbe5:	4d 8b f9             	mov    %r9,%r15
18010cbe8:	ff cb                	dec    %ebx
18010cbea:	4c 8b d2             	mov    %rdx,%r10
18010cbed:	4b 8d 3c 0c          	lea    (%r12,%r9,1),%rdi
18010cbf1:	41 3b de             	cmp    %r14d,%ebx
18010cbf4:	7c 54                	jl     0x18010cc4a
18010cbf6:	45 0f b7 e8          	movzwl %r8w,%r13d
18010cbfa:	41 8d 34 1e          	lea    (%r14,%rbx,1),%esi
18010cbfe:	c6 44 24 20 01       	movb   $0x1,0x20(%rsp)
18010cc03:	d1 fe                	sar    $1,%esi
18010cc05:	49 8b d5             	mov    %r13,%rdx
18010cc08:	48 63 c6             	movslq %esi,%rax
18010cc0b:	48 8d 0c 80          	lea    (%rax,%rax,4),%rcx
18010cc0f:	49 8d 2c 8c          	lea    (%r12,%rcx,4),%rbp
18010cc13:	49 8b ca             	mov    %r10,%rcx
18010cc16:	49 03 ef             	add    %r15,%rbp
18010cc19:	44 8b 4d 08          	mov    0x8(%rbp),%r9d
18010cc1d:	44 8b 45 04          	mov    0x4(%rbp),%r8d
18010cc21:	49 d1 e9             	shr    $1,%r9
18010cc24:	4d 03 c7             	add    %r15,%r8
18010cc27:	e8 70 0d f7 ff       	call   0x18007d99c
18010cc2c:	85 c0                	test   %eax,%eax
18010cc2e:	79 05                	jns    0x18010cc35
18010cc30:	8d 5e ff             	lea    -0x1(%rsi),%ebx
18010cc33:	eb 06                	jmp    0x18010cc3b
18010cc35:	7e 10                	jle    0x18010cc47
18010cc37:	44 8d 76 01          	lea    0x1(%rsi),%r14d
18010cc3b:	4c 8b 54 24 68       	mov    0x68(%rsp),%r10
18010cc40:	44 3b f3             	cmp    %ebx,%r14d
18010cc43:	7e b5                	jle    0x18010cbfa
18010cc45:	eb 03                	jmp    0x18010cc4a
18010cc47:	48 8b fd             	mov    %rbp,%rdi
18010cc4a:	48 8b 5c 24 60       	mov    0x60(%rsp),%rbx
18010cc4f:	48 8b c7             	mov    %rdi,%rax
18010cc52:	48 8b 6c 24 70       	mov    0x70(%rsp),%rbp
18010cc57:	48 8b 74 24 78       	mov    0x78(%rsp),%rsi
18010cc5c:	48 83 c4 30          	add    $0x30,%rsp
18010cc60:	41 5f                	pop    %r15
18010cc62:	41 5e                	pop    %r14
18010cc64:	41 5d                	pop    %r13
18010cc66:	41 5c                	pop    %r12
18010cc68:	5f                   	pop    %rdi