1801407c0:	48 85 ff             	test   %rdi,%rdi
1801407c3:	74 37                	je     0x1801407fc
1801407c5:	0f b7 47 08          	movzwl 0x8(%rdi),%eax
1801407c9:	83 f8 08             	cmp    $0x8,%eax
1801407cc:	73 2e                	jae    0x1801407fc
1801407ce:	48 03 c5             	add    %rbp,%rax
1801407d1:	48 8d 04 40          	lea    (%rax,%rax,2),%rax
1801407d5:	c7 04 87 05 00 00 00 	movl   $0x5,(%rdi,%rax,4)
1801407dc:	0f b7 47 08          	movzwl 0x8(%rdi),%eax
1801407e0:	48 8d 0c 40          	lea    (%rax,%rax,2),%rcx
1801407e4:	89 54 8f 10          	mov    %edx,0x10(%rdi,%rcx,4)
1801407e8:	0f b7 47 08          	movzwl 0x8(%rdi),%eax
1801407ec:	48 8d 0c 40          	lea    (%rax,%rax,2),%rcx
1801407f0:	c7 44 8f 14 40 00 00 	movl   $0x40,0x14(%rdi,%rcx,4)
1801407f7:	00
1801407f8:	66 01 6f 08          	add    %bp,0x8(%rdi)
1801407fc:	45 8b cf             	mov    %r15d,%r9d
1801407ff:	49 8b d6             	mov    %r14,%rdx
180140802:	48 8b ce             	mov    %rsi,%rcx
180140805:	e8 7a 02 00 00       	call   0x180140a84
18014080a:	48 8b 46 20          	mov    0x20(%rsi),%rax
18014080e:	ba 00 20 00 00       	mov    $0x2000,%edx
180140813:	49 8b ce             	mov    %r14,%rcx
180140816:	ff d0                	call   *%rax
180140818:	0f 1f 00             	nopl   (%rax)
18014081b:	48 8b 4c 24 50       	mov    0x50(%rsp),%rcx
180140820:	48 85 c9             	test   %rcx,%rcx
180140823:	74 17                	je     0x18014083c
180140825:	48 39 4e 60          	cmp    %rcx,0x60(%rsi)
180140829:	75 05                	jne    0x180140830
18014082b:	48 83 66 60 00       	andq   $0x0,0x60(%rsi)
180140830:	48 8b 46 20          	mov    0x20(%rsi),%rax
180140834:	41 8b d4             	mov    %r12d,%edx
180140837:	ff d0                	call   *%rax
180140839:	0f 1f 00             	nopl   (%rax)
18014083c:	4d 85 ed             	test   %r13,%r13
18014083f:	74 1a                	je     0x18014085b
180140841:	4c 39 6e 78          	cmp    %r13,0x78(%rsi)
180140845:	75 05                	jne    0x18014084c
180140847:	48 83 66 78 00       	andq   $0x0,0x78(%rsi)
18014084c:	48 8b 46 20          	mov    0x20(%rsi),%rax
180140850:	41 8b d4             	mov    %r12d,%edx
180140853:	49 8b cd             	mov    %r13,%rcx
180140856:	ff d0                	call   *%rax
180140858:	0f 1f 00             	nopl   (%rax)
18014085b:	8b c3                	mov    %ebx,%eax
18014085d:	eb 12                	jmp    0x180140871
18014085f:	33 db                	xor    %ebx,%ebx
180140861:	4c 89 b6 18 01 00 00 	mov    %r14,0x118(%rsi)
180140868:	33 c0                	xor    %eax,%eax
18014086a:	48 89 9e 20 01 00 00 	mov    %rbx,0x120(%rsi)
180140871:	48 8b 5c 24 58       	mov    0x58(%rsp),%rbx
180140876:	48 8b 6c 24 60       	mov    0x60(%rsp),%rbp
18014087b:	48 8b 74 24 68       	mov    0x68(%rsp),%rsi
180140880:	48 83 c4 20          	add    $0x20,%rsp
180140884:	41 5f                	pop    %r15
180140886:	41 5e                	pop    %r14
180140888:	41 5d                	pop    %r13
18014088a:	41 5c                	pop    %r12
18014088c:	5f                   	pop    %rdi
18014088d:	c3                   	ret
18014088e:	cc                   	int3
18014088f:	cc                   	int3
180140890:	48 8b c4             	mov    %rsp,%rax
180140893:	48 89 58 08          	mov    %rbx,0x8(%rax)
180140897:	44 89 48 20          	mov    %r9d,0x20(%rax)
18014089b:	44 89 40 18          	mov    %r8d,0x18(%rax)
18014089f:	48 89 50 10          	mov    %rdx,0x10(%rax)
1801408a3:	55                   	push   %rbp
1801408a4:	56                   	push   %rsi
1801408a5:	57                   	push   %rdi
1801408a6:	41 54                	push   %r12
1801408a8:	41 55                	push   %r13
1801408aa:	41 56                	push   %r14
1801408ac:	41 57                	push   %r15
1801408ae:	48 83 ec 20          	sub    $0x20,%rsp
1801408b2:	83 81 90 00 00 00 20 	addl   $0x20,0x90(%rcx)
1801408b9:	45 32 ed             	xor    %r13b,%r13b
1801408bc:	8b 42 08             	mov    0x8(%rdx),%eax
1801408bf:	41 bf 20 00 00 00    	mov    $0x20,%r15d
1801408c5:	48 8b 59 38          	mov    0x38(%rcx),%rbx
1801408c9:	48 8b e9             	mov    %rcx,%rbp
1801408cc:	41 3b c7             	cmp    %r15d,%eax
1801408cf:	0f 86 10 01 00 00    	jbe    0x1801409e5
1801408d5:	be 09 00 00 40       	mov    $0x40000009,%esi
1801408da:	45 8d 47 e1          	lea    -0x1f(%r15),%r8d
1801408de:	45 8b e7             	mov    %r15d,%r12d
1801408e1:	4c 03 e2             	add    %rdx,%r12
1801408e4:	45 8b 34 24          	mov    (%r12),%r14d
1801408e8:	41 8b fe             	mov    %r14d,%edi
1801408eb:	45 85 f6             	test   %r14d,%r14d
1801408ee:	79 02                	jns    0x1801408f2
1801408f0:	f7 df                	neg    %edi
1801408f2:	42 8d 0c 3f          	lea    (%rdi,%r15,1),%ecx
1801408f6:	41 3b cf             	cmp    %r15d,%ecx
1801408f9:	72 19                	jb     0x180140914
1801408fb:	3b c8                	cmp    %eax,%ecx
1801408fd:	77 15                	ja     0x180140914
1801408ff:	40 f6 c7 07          	test   $0x7,%dil
180140903:	75 0f                	jne    0x180140914
180140905:	41 c1 ee 1f          	shr    $0x1f,%r14d
180140909:	45 32 f0             	xor    %r8b,%r14b
18014090c:	85 ff                	test   %edi,%edi
18014090e:	0f 85 88 00 00 00    	jne    0x18014099c
180140914:	41 0f ba e1 11       	bt     $0x11,%r9d
180140919:	0f 82 1f 01 00 00    	jb     0x180140a3e
18014091f:	8b f8                	mov    %eax,%edi
180140921:	45 8a f0             	mov    %r8b,%r14b
180140924:	41 2b ff             	sub    %r15d,%edi
180140927:	e8 0c 41 ee ff       	call   0x180024a38
18014092c:	84 c0                	test   %al,%al
18014092e:	0f 84 cb 00 00 00    	je     0x1801409ff
180140934:	44 8b c7             	mov    %edi,%r8d
180140937:	33 d2                	xor    %edx,%edx
180140939:	49 8b cc             	mov    %r12,%rcx
18014093c:	e8 3f 53 ff ff       	call   0x180135c80
180140941:	41 89 3c 24          	mov    %edi,(%r12)
180140945:	41 b8 01 00 00 00    	mov    $0x1,%r8d
18014094b:	48 8b 45 40          	mov    0x40(%rbp),%rax
18014094f:	45 8a e8             	mov    %r8b,%r13b
180140952:	83 88 f8 0f 00 00 04 	orl    $0x4,0xff8(%rax)
180140959:	48 85 db             	test   %rbx,%rbx
18014095c:	74 4b                	je     0x1801409a9
18014095e:	0f b7 43 0a          	movzwl 0xa(%rbx),%eax
180140962:	83 f8 08             	cmp    $0x8,%eax
180140965:	73 42                	jae    0x1801409a9
180140967:	48 8b 54 24 68       	mov    0x68(%rsp),%rdx
18014096c:	48 83 c0 09          	add    $0x9,%rax
180140970:	48 8d 04 40          	lea    (%rax,%rax,2),%rax
180140974:	c7 04 83 1a 00 00 00 	movl   $0x1a,(%rbx,%rax,4)
18014097b:	0f b7 43 0a          	movzwl 0xa(%rbx),%eax
18014097f:	48 8d 0c 40          	lea    (%rax,%rax,2),%rcx
180140983:	89 74 8b 70          	mov    %esi,0x70(%rbx,%rcx,4)
180140987:	0f b7 43 0a          	movzwl 0xa(%rbx),%eax
18014098b:	48 8d 0c 40          	lea    (%rax,%rax,2),%rcx
18014098f:	c7 44 8b 74 20 00 00 	movl   $0x20,0x74(%rbx,%rcx,4)
180140996:	00
180140997:	66 44 01 43 0a       	add    %r8w,0xa(%rbx)
18014099c:	45 84 f6             	test   %r14b,%r14b
18014099f:	75 08                	jne    0x1801409a9
1801409a1:	01 bd 98 00 00 00    	add    %edi,0x98(%rbp)
1801409a7:	eb 1d                	jmp    0x1801409c6
1801409a9:	8b 54 24 70          	mov    0x70(%rsp),%edx
1801409ad:	44 8b c7             	mov    %edi,%r8d
1801409b0:	01 bd 94 00 00 00    	add    %edi,0x94(%rbp)
1801409b6:	41 03 d7             	add    %r15d,%edx
1801409b9:	48 8b cd             	mov    %rbp,%rcx
1801409bc:	e8 27 f3 ff ff       	call   0x18013fce8
1801409c1:	48 8b 54 24 68       	mov    0x68(%rsp),%rdx
1801409c6:	8b 42 08             	mov    0x8(%rdx),%eax
1801409c9:	44 03 ff             	add    %edi,%r15d
1801409cc:	44 8b 4c 24 78       	mov    0x78(%rsp),%r9d
1801409d1:	41 b8 01 00 00 00    	mov    $0x1,%r8d
1801409d7:	44 3b f8             	cmp    %eax,%r15d
1801409da:	0f 82 fe fe ff ff    	jb     0x1801408de
1801409e0:	45 84 ed             	test   %r13b,%r13b
1801409e3:	75 02                	jne    0x1801409e7
1801409e5:	33 f6                	xor    %esi,%esi
1801409e7:	48 8b 5c 24 60       	mov    0x60(%rsp),%rbx
1801409ec:	8b c6                	mov    %esi,%eax
1801409ee:	48 83 c4 20          	add    $0x20,%rsp
1801409f2:	41 5f                	pop    %r15
1801409f4:	41 5e                	pop    %r14
1801409f6:	41 5d                	pop    %r13
1801409f8:	41 5c                	pop    %r12
1801409fa:	5f                   	pop    %rdi
1801409fb:	5e                   	pop    %rsi
1801409fc:	5d                   	pop    %rbp
1801409fd:	c3                   	ret
1801409fe:	cc                   	int3
1801409ff:	be 9a 00 00 c0       	mov    $0xc000009a,%esi
180140a04:	48 85 db             	test   %rbx,%rbx
180140a07:	74 de                	je     0x1801409e7
180140a09:	0f b7 43 08          	movzwl 0x8(%rbx),%eax
180140a0d:	83 f8 08             	cmp    $0x8,%eax
180140a10:	73 d5                	jae    0x1801409e7
180140a12:	49 03 c0             	add    %r8,%rax
180140a15:	48 8d 04 40          	lea    (%rax,%rax,2),%rax
180140a19:	c7 04 83 1a 00 00 00 	movl   $0x1a,(%rbx,%rax,4)
180140a20:	0f b7 43 08          	movzwl 0x8(%rbx),%eax
180140a24:	48 8d 0c 40          	lea    (%rax,%rax,2),%rcx
180140a28:	89 74 8b 10          	mov    %esi,0x10(%rbx,%rcx,4)
180140a2c:	0f b7 43 08          	movzwl 0x8(%rbx),%eax
180140a30:	48 8d 0c 40          	lea    (%rax,%rax,2),%rcx
180140a34:	c7 44 8b 14 10 00 00 	movl   $0x10,0x14(%rbx,%rcx,4)
180140a3b:	00
180140a3c:	eb 3a                	jmp    0x180140a78
180140a3e:	be 4c 01 00 c0       	mov    $0xc000014c,%esi
180140a43:	48 85 db             	test   %rbx,%rbx
180140a46:	74 9f                	je     0x1801409e7
180140a48:	0f b7 43 08          	movzwl 0x8(%rbx),%eax
180140a4c:	83 f8 08             	cmp    $0x8,%eax
180140a4f:	73 96                	jae    0x1801409e7
180140a51:	49 03 c0             	add    %r8,%rax
180140a54:	48 8d 04 40          	lea    (%rax,%rax,2),%rax
180140a58:	c7 04 83 1a 00 00 00 	movl   $0x1a,(%rbx,%rax,4)
180140a5f:	0f b7 43 08          	movzwl 0x8(%rbx),%eax
180140a63:	48 8d 0c 40          	lea    (%rax,%rax,2),%rcx
180140a67:	89 74 8b 10          	mov    %esi,0x10(%rbx,%rcx,4)
180140a6b:	0f b7 43 08          	movzwl 0x8(%rbx),%eax
180140a6f:	48 8d 0c 40          	lea    (%rax,%rax,2),%rcx
180140a73:	83 64 8b 14 00       	andl   $0x0,0x14(%rbx,%rcx,4)
180140a78:	66 44 01 43 08       	add    %r8w,0x8(%rbx)
180140a7d:	e9 65 ff ff ff       	jmp    0x1801409e7
180140a82:	cc                   	int3
180140a83:	cc                   	int3
180140a84:	48 85 d2             	test   %rdx,%rdx
180140a87:	74 5a                	je     0x180140ae3
180140a89:	48 89 5c 24 08       	mov    %rbx,0x8(%rsp)
180140a8e:	48 89 74 24 10       	mov    %rsi,0x10(%rsp)
180140a93:	57                   	push   %rdi
180140a94:	48 83 ec 20          	sub    $0x20,%rsp
180140a98:	41 81 f9 00 04 00 00 	cmp    $0x400,%r9d
180140a9f:	bf ff 03 00 00       	mov    $0x3ff,%edi
180140aa4:	48 8b da             	mov    %rdx,%rbx
180140aa7:	48 8b f1             	mov    %rcx,%rsi
180140aaa:	41 0f 42 f9          	cmovb  %r9d,%edi
180140aae:	ff c7                	inc    %edi
180140ab0:	48 8b 0b             	mov    (%rbx),%rcx
180140ab3:	48 85 c9             	test   %rcx,%rcx
180140ab6:	74 12                	je     0x180140aca
180140ab8:	48 8b 46 20          	mov    0x20(%rsi),%rax
180140abc:	ba 00 30 00 00       	mov    $0x3000,%edx
180140ac1:	ff d0                	call   *%rax
180140ac3:	0f 1f 00             	nopl   (%rax)
180140ac6:	48 83 23 00          	andq   $0x0,(%rbx)
180140aca:	48 83 c3 08          	add    $0x8,%rbx
180140ace:	48 83 ef 01          	sub    $0x1,%rdi
180140ad2:	75 dc                	jne    0x180140ab0
180140ad4:	48 8b 5c 24 30       	mov    0x30(%rsp),%rbx
180140ad9:	48 8b 74 24 38       	mov    0x38(%rsp),%rsi
180140ade:	48 83 c4 20          	add    $0x20,%rsp
180140ae2:	5f                   	pop    %rdi
180140ae3:	c3                   	ret
180140ae4:	cc                   	int3
180140ae5:	cc                   	int3
180140ae6:	cc                   	int3
180140ae7:	cc                   	int3
180140ae8:	48 8b c4             	mov    %rsp,%rax
180140aeb:	48 89 58 08          	mov    %rbx,0x8(%rax)
180140aef:	48 89 68 10          	mov    %rbp,0x10(%rax)
180140af3:	48 89 70 18          	mov    %rsi,0x18(%rax)
180140af7:	48 89 78 20          	mov    %rdi,0x20(%rax)
180140afb:	41 56                	push   %r14
180140afd:	48 83 ec 20          	sub    $0x20,%rsp
180140b01:	41 8b f1             	mov    %r9d,%esi
180140b04:	48 8b da             	mov    %rdx,%rbx
180140b07:	4c 8b f1             	mov    %rcx,%r14
180140b0a:	41 81 f9 00 04 00 00 	cmp    $0x400,%r9d
180140b11:	73 41                	jae    0x180140b54
180140b13:	33 ff                	xor    %edi,%edi
180140b15:	49 8b 46 18          	mov    0x18(%r14),%rax
180140b19:	33 d2                	xor    %edx,%edx
180140b1b:	b9 00 30 00 00       	mov    $0x3000,%ecx
180140b20:	41 b8 43 4d 32 39    	mov    $0x39324d43,%r8d
180140b26:	ff d0                	call   *%rax
180140b28:	0f 1f 00             	nopl   (%rax)
180140b2b:	48 8b e8             	mov    %rax,%rbp
180140b2e:	48 85 c0             	test   %rax,%rax
180140b31:	74 21                	je     0x180140b54
180140b33:	33 d2                	xor    %edx,%edx
180140b35:	41 b8 00 30 00 00    	mov    $0x3000,%r8d
180140b3b:	48 8b c8             	mov    %rax,%rcx
180140b3e:	e8 3d 51 ff ff       	call   0x180135c80
180140b43:	48 89 2b             	mov    %rbp,(%rbx)
180140b46:	ff c7                	inc    %edi
180140b48:	48 83 c3 08          	add    $0x8,%rbx
180140b4c:	3b fe                	cmp    %esi,%edi
180140b4e:	76 c5                	jbe    0x180140b15
180140b50:	b0 01                	mov    $0x1,%al
180140b52:	eb 02                	jmp    0x180140b56
180140b54:	32 c0                	xor    %al,%al
180140b56:	48 8b 5c 24 30       	mov    0x30(%rsp),%rbx
180140b5b:	48 8b 6c 24 38       	mov    0x38(%rsp),%rbp
180140b60:	48 8b 74 24 40       	mov    0x40(%rsp),%rsi
180140b65:	48 8b 7c 24 48       	mov    0x48(%rsp),%rdi
180140b6a:	48 83 c4 20          	add    $0x20,%rsp
180140b6e:	41 5e                	pop    %r14
180140b70:	c3                   	ret
180140b71:	cc                   	int3
180140b72:	cc                   	int3
180140b73:	cc                   	int3
180140b74:	48 8b 42 08          	mov    0x8(%rdx),%rax
180140b78:	48 83 e0 f0          	and    $0xfffffffffffffff0,%rax
180140b7c:	c3                   	ret
180140b7d:	cc                   	int3
180140b7e:	cc                   	int3
180140b7f:	cc                   	int3
180140b80:	8a 41 08             	mov    0x8(%rcx),%al
180140b83:	d0 e8                	shr    $1,%al
180140b85:	a8 01                	test   $0x1,%al
180140b87:	74 05                	je     0x180140b8e
180140b89:	48 8b 01             	mov    (%rcx),%rax
180140b8c:	c3                   	ret
180140b8d:	cc                   	int3
180140b8e:	33 c0                	xor    %eax,%eax
180140b90:	c3                   	ret
180140b91:	cc                   	int3
180140b92:	cc                   	int3
180140b93:	cc                   	int3
180140b94:	48 8b c4             	mov    %rsp,%rax
180140b97:	48 89 58 08          	mov    %rbx,0x8(%rax)
180140b9b:	48 89 68 10          	mov    %rbp,0x10(%rax)
180140b9f:	48 89 70 18          	mov    %rsi,0x18(%rax)
180140ba3:	57                   	push   %rdi
180140ba4:	48 83 ec 30          	sub    $0x30,%rsp
180140ba8:	0f 10 01             	movups (%rcx),%xmm0
180140bab:	33 db                	xor    %ebx,%ebx
180140bad:	0f 11 40 e8          	movups %xmm0,-0x18(%rax)
180140bb1:	66 0f 7e c0          	movd   %xmm0,%eax
180140bb5:	66 85 c0             	test   %ax,%ax
180140bb8:	74 42                	je     0x180140bfc
180140bba:	48 8b 7c 24 28       	mov    0x28(%rsp),%rdi
180140bbf:	8d 6b 01             	lea    0x1(%rbx),%ebp
180140bc2:	66 2b c5             	sub    %bp,%ax
180140bc5:	66 d1 e8             	shr    $1,%ax
180140bc8:	66 03 c5             	add    %bp,%ax
180140bcb:	0f b7 f0             	movzwl %ax,%esi
180140bce:	0f b7 07             	movzwl (%rdi),%eax
180140bd1:	66 83 f8 61          	cmp    $0x61,%ax
180140bd5:	72 14                	jb     0x180140beb
180140bd7:	66 83 f8 7a          	cmp    $0x7a,%ax
180140bdb:	76 0a                	jbe    0x180140be7
180140bdd:	0f b7 c8             	movzwl %ax,%ecx
180140be0:	e8 23 d1 f3 ff       	call   0x18007dd08
180140be5:	eb 04                	jmp    0x180140beb
180140be7:	66 83 e8 20          	sub    $0x20,%ax
180140beb:	6b db 25             	imul   $0x25,%ebx,%ebx
180140bee:	48 83 c7 02          	add    $0x2,%rdi
180140bf2:	0f b7 c8             	movzwl %ax,%ecx
180140bf5:	03 d9                	add    %ecx,%ebx
180140bf7:	48 2b f5             	sub    %rbp,%rsi
180140bfa:	75 d2                	jne    0x180140bce
180140bfc:	48 8b 6c 24 48       	mov    0x48(%rsp),%rbp
180140c01:	8b c3                	mov    %ebx,%eax
180140c03:	48 8b 5c 24 40       	mov    0x40(%rsp),%rbx
180140c08:	48 8b 74 24 50       	mov    0x50(%rsp),%rsi
180140c0d:	48 83 c4 30          	add    $0x30,%rsp
180140c11:	5f                   	pop    %rdi
180140c12:	c3                   	ret
180140c13:	cc                   	int3
180140c14:	0f b7 11             	movzwl (%rcx),%edx
180140c17:	33 c0                	xor    %eax,%eax
180140c19:	d1 ea                	shr    $1,%edx
180140c1b:	89 44 24 08          	mov    %eax,0x8(%rsp)
180140c1f:	44 8d 40 04          	lea    0x4(%rax),%r8d
180140c23:	41 3b d0             	cmp    %r8d,%edx
180140c26:	73 07                	jae    0x180140c2f
180140c28:	44 8b c2             	mov    %edx,%r8d
180140c2b:	85 d2                	test   %edx,%edx