18012aaf7:	44 8b c3             	mov    %ebx,%r8d
18012aafa:	8b d6                	mov    %esi,%edx
18012aafc:	8b cf                	mov    %edi,%ecx
18012aafe:	e8 d1 c2 fe ff       	call   0x180116dd4
18012ab03:	f6 44 24 44 02       	testb  $0x2,0x44(%rsp)
18012ab08:	0f 84 c3 00 00 00    	je     0x18012abd1
18012ab0e:	8b 4c 24 50          	mov    0x50(%rsp),%ecx
18012ab12:	8b c5                	mov    %ebp,%eax
18012ab14:	8b d9                	mov    %ecx,%ebx
18012ab16:	80 e1 06             	and    $0x6,%cl
18012ab19:	83 e3 f0             	and    $0xfffffff0,%ebx
18012ab1c:	80 f9 04             	cmp    $0x4,%cl
18012ab1f:	89 5c 24 30          	mov    %ebx,0x30(%rsp)
18012ab23:	0f 44 44 24 54       	cmove  0x54(%rsp),%eax
18012ab28:	89 44 24 34          	mov    %eax,0x34(%rsp)
18012ab2c:	48 8b 4c 24 30       	mov    0x30(%rsp),%rcx
18012ab31:	48 85 c9             	test   %rcx,%rcx
18012ab34:	0f 84 97 00 00 00    	je     0x18012abd1
18012ab3a:	e8 f5 c2 fe ff       	call   0x180116e34
18012ab3f:	48 8b d0             	mov    %rax,%rdx
18012ab42:	48 85 c0             	test   %rax,%rax
18012ab45:	0f 84 81 00 00 00    	je     0x18012abcc
18012ab4b:	8b cb                	mov    %ebx,%ecx
18012ab4d:	48 81 e1 00 f0 ff ff 	and    $0xfffffffffffff000,%rcx
18012ab54:	8b 40 10             	mov    0x10(%rax),%eax
18012ab57:	c1 e8 10             	shr    $0x10,%eax
18012ab5a:	85 c0                	test   %eax,%eax
18012ab5c:	74 6e                	je     0x18012abcc
18012ab5e:	40 b6 01             	mov    $0x1,%sil
18012ab61:	c1 e0 02             	shl    $0x2,%eax
18012ab64:	03 d8                	add    %eax,%ebx
18012ab66:	8b fb                	mov    %ebx,%edi
18012ab68:	48 81 e7 00 f0 ff ff 	and    $0xfffffffffffff000,%rdi
18012ab6f:	89 5c 24 30          	mov    %ebx,0x30(%rsp)
18012ab73:	48 3b f9             	cmp    %rcx,%rdi
18012ab76:	76 17                	jbe    0x18012ab8f
18012ab78:	48 8b 4c 24 30       	mov    0x30(%rsp),%rcx
18012ab7d:	e8 b2 c2 fe ff       	call   0x180116e34
18012ab82:	48 8b d0             	mov    %rax,%rdx
18012ab85:	48 85 c0             	test   %rax,%rax
18012ab88:	74 42                	je     0x18012abcc
18012ab8a:	48 8b cf             	mov    %rdi,%rcx
18012ab8d:	eb 03                	jmp    0x18012ab92
18012ab8f:	48 03 d0             	add    %rax,%rdx
18012ab92:	8b 02                	mov    (%rdx),%eax
18012ab94:	40 3a c6             	cmp    %sil,%al
18012ab97:	74 0c                	je     0x18012aba5
18012ab99:	c1 e8 08             	shr    $0x8,%eax
18012ab9c:	0f b6 c0             	movzbl %al,%eax
18012ab9f:	85 c0                	test   %eax,%eax
18012aba1:	74 29                	je     0x18012abcc
18012aba3:	eb bc                	jmp    0x18012ab61
18012aba5:	8b 02                	mov    (%rdx),%eax
18012aba7:	8b c8                	mov    %eax,%ecx
18012aba9:	c1 e9 10             	shr    $0x10,%ecx
18012abac:	89 44 24 30          	mov    %eax,0x30(%rsp)
18012abb0:	40 84 ce             	test   %cl,%sil
18012abb3:	74 17                	je     0x18012abcc
18012abb5:	c1 e8 18             	shr    $0x18,%eax
18012abb8:	40 0a c6             	or     %sil,%al
18012abbb:	88 44 24 33          	mov    %al,0x33(%rsp)
18012abbf:	8b 44 24 30          	mov    0x30(%rsp),%eax
18012abc3:	89 02                	mov    %eax,(%rdx)
18012abc5:	f0 09 2c 24          	lock or %ebp,(%rsp)
18012abc9:	40 8a ee             	mov    %sil,%bpl
18012abcc:	40 8a c5             	mov    %bpl,%al
18012abcf:	eb 02                	jmp    0x18012abd3
18012abd1:	32 c0                	xor    %al,%al
18012abd3:	48 8b 8c 24 80 00 00 	mov    0x80(%rsp),%rcx
18012abda:	00
18012abdb:	48 33 cc             	xor    %rsp,%rcx
18012abde:	e8 49 af ee ff       	call   0x180015b2c
18012abe3:	48 8b 9c 24 c8 00 00 	mov    0xc8(%rsp),%rbx
18012abea:	00
18012abeb:	48 81 c4 90 00 00 00 	add    $0x90,%rsp
18012abf2:	5f                   	pop    %rdi
18012abf3:	5e                   	pop    %rsi
18012abf4:	5d                   	pop    %rbp
18012abf5:	c3                   	ret
18012abf6:	cc                   	int3
18012abf7:	cc                   	int3
18012abf8:	cc                   	int3
18012abf9:	cc                   	int3
18012abfa:	cc                   	int3
18012abfb:	cc                   	int3
18012abfc:	cc                   	int3
18012abfd:	cc                   	int3
18012abfe:	cc                   	int3
18012abff:	cc                   	int3
18012ac00:	48 83 ec 28          	sub    $0x28,%rsp
18012ac04:	4d 8b 41 38          	mov    0x38(%r9),%r8
18012ac08:	48 8b ca             	mov    %rdx,%rcx
18012ac0b:	49 8b d1             	mov    %r9,%rdx
18012ac0e:	e8 0d 00 00 00       	call   0x18012ac20
18012ac13:	b8 01 00 00 00       	mov    $0x1,%eax
18012ac18:	48 83 c4 28          	add    $0x28,%rsp
18012ac1c:	c3                   	ret
18012ac1d:	cc                   	int3
18012ac1e:	cc                   	int3
18012ac1f:	cc                   	int3
18012ac20:	48 83 ec 28          	sub    $0x28,%rsp
18012ac24:	41 8b 00             	mov    (%r8),%eax
18012ac27:	4c 8b c9             	mov    %rcx,%r9
18012ac2a:	44 8b d8             	mov    %eax,%r11d
18012ac2d:	4c 8b d1             	mov    %rcx,%r10
18012ac30:	41 83 e3 f8          	and    $0xfffffff8,%r11d
18012ac34:	a8 04                	test   $0x4,%al
18012ac36:	74 13                	je     0x18012ac4b
18012ac38:	41 8b 40 08          	mov    0x8(%r8),%eax
18012ac3c:	4d 63 50 04          	movslq 0x4(%r8),%r10
18012ac40:	f7 d8                	neg    %eax
18012ac42:	4c 03 d1             	add    %rcx,%r10
18012ac45:	48 63 c8             	movslq %eax,%rcx
18012ac48:	4c 23 d1             	and    %rcx,%r10
18012ac4b:	49 63 c3             	movslq %r11d,%rax
18012ac4e:	4e 8b 04 10          	mov    (%rax,%r10,1),%r8
18012ac52:	48 8b 42 10          	mov    0x10(%rdx),%rax
18012ac56:	8b 48 08             	mov    0x8(%rax),%ecx
18012ac59:	48 8b 42 08          	mov    0x8(%rdx),%rax
18012ac5d:	0f b6 54 01 03       	movzbl 0x3(%rcx,%rax,1),%edx
18012ac62:	f6 c2 0f             	test   $0xf,%dl
18012ac65:	74 08                	je     0x18012ac6f
18012ac67:	8b c2                	mov    %edx,%eax
18012ac69:	83 e0 f0             	and    $0xfffffff0,%eax
18012ac6c:	4c 03 c8             	add    %rax,%r9
18012ac6f:	4d 33 c8             	xor    %r8,%r9
18012ac72:	49 8b c9             	mov    %r9,%rcx
18012ac75:	e8 b2 ae ee ff       	call   0x180015b2c
18012ac7a:	48 83 c4 28          	add    $0x28,%rsp
18012ac7e:	c3                   	ret
18012ac7f:	cc                   	int3
18012ac80:	4c 8b d2             	mov    %rdx,%r10
18012ac83:	4c 8b d9             	mov    %rcx,%r11
18012ac86:	45 0f b6 03          	movzbl (%r11),%r8d
18012ac8a:	49 ff c3             	inc    %r11
18012ac8d:	41 0f b6 12          	movzbl (%r10),%edx
18012ac91:	41 8d 40 bf          	lea    -0x41(%r8),%eax
18012ac95:	83 f8 19             	cmp    $0x19,%eax
18012ac98:	45 8d 48 20          	lea    0x20(%r8),%r9d
18012ac9c:	8d 4a bf             	lea    -0x41(%rdx),%ecx
18012ac9f:	45 0f 47 c8          	cmova  %r8d,%r9d
18012aca3:	8d 42 20             	lea    0x20(%rdx),%eax
18012aca6:	49 ff c2             	inc    %r10
18012aca9:	83 f9 19             	cmp    $0x19,%ecx
18012acac:	0f 47 c2             	cmova  %edx,%eax
18012acaf:	45 85 c9             	test   %r9d,%r9d
18012acb2:	74 05                	je     0x18012acb9
18012acb4:	44 3b c8             	cmp    %eax,%r9d
18012acb7:	74 cd                	je     0x18012ac86
18012acb9:	44 2b c8             	sub    %eax,%r9d
18012acbc:	41 8b c1             	mov    %r9d,%eax
18012acbf:	c3                   	ret
18012acc0:	cc                   	int3
18012acc1:	cc                   	int3
18012acc2:	cc                   	int3
18012acc3:	cc                   	int3
18012acc4:	48 83 ec 28          	sub    $0x28,%rsp
18012acc8:	e8 b3 ff ff ff       	call   0x18012ac80
18012accd:	48 83 c4 28          	add    $0x28,%rsp
18012acd1:	c3                   	ret
18012acd2:	cc                   	int3
18012acd3:	cc                   	int3
18012acd4:	48 83 ec 38          	sub    $0x38,%rsp
18012acd8:	48 8b d1             	mov    %rcx,%rdx
18012acdb:	48 85 c9             	test   %rcx,%rcx
18012acde:	75 14                	jne    0x18012acf4
18012ace0:	48 21 4c 24 20       	and    %rcx,0x20(%rsp)
18012ace5:	45 33 c9             	xor    %r9d,%r9d
18012ace8:	45 33 c0             	xor    %r8d,%r8d
18012aceb:	e8 3c ae ee ff       	call   0x180015b2c
18012acf0:	33 c0                	xor    %eax,%eax
18012acf2:	eb 21                	jmp    0x18012ad15
18012acf4:	8a 09                	mov    (%rcx),%cl
18012acf6:	4c 8b c2             	mov    %rdx,%r8
18012acf9:	eb 13                	jmp    0x18012ad0e
18012acfb:	8d 41 9f             	lea    -0x61(%rcx),%eax
18012acfe:	3c 19                	cmp    $0x19,%al
18012ad00:	77 06                	ja     0x18012ad08
18012ad02:	80 e9 20             	sub    $0x20,%cl
18012ad05:	41 88 08             	mov    %cl,(%r8)
18012ad08:	49 ff c0             	inc    %r8
18012ad0b:	41 8a 08             	mov    (%r8),%cl
18012ad0e:	84 c9                	test   %cl,%cl
18012ad10:	75 e9                	jne    0x18012acfb
18012ad12:	48 8b c2             	mov    %rdx,%rax
18012ad15:	48 83 c4 38          	add    $0x38,%rsp
18012ad19:	c3                   	ret
18012ad1a:	cc                   	int3
18012ad1b:	cc                   	int3
18012ad1c:	48 83 ec 38          	sub    $0x38,%rsp
18012ad20:	4c 89 4c 24 20       	mov    %r9,0x20(%rsp)
18012ad25:	45 33 c9             	xor    %r9d,%r9d
18012ad28:	e8 07 00 00 00       	call   0x18012ad34
18012ad2d:	48 83 c4 38          	add    $0x38,%rsp
18012ad31:	c3                   	ret
18012ad32:	cc                   	int3
18012ad33:	cc                   	int3
18012ad34:	48 89 5c 24 08       	mov    %rbx,0x8(%rsp)
18012ad39:	48 89 7c 24 10       	mov    %rdi,0x10(%rsp)
18012ad3e:	55                   	push   %rbp
18012ad3f:	48 8b ec             	mov    %rsp,%rbp
18012ad42:	48 83 ec 60          	sub    $0x60,%rsp
18012ad46:	83 65 dc 00          	andl   $0x0,-0x24(%rbp)
18012ad4a:	0f 57 c0             	xorps  %xmm0,%xmm0
18012ad4d:	83 65 fc 00          	andl   $0x0,-0x4(%rbp)
18012ad51:	4d 8b d1             	mov    %r9,%r10
18012ad54:	49 8b c0             	mov    %r8,%rax
18012ad57:	48 8b d9             	mov    %rcx,%rbx
18012ad5a:	f3 0f 7f 45 ec       	movdqu %xmm0,-0x14(%rbp)
18012ad5f:	4d 85 c0             	test   %r8,%r8
18012ad62:	74 5f                	je     0x18012adc3
18012ad64:	48 85 d2             	test   %rdx,%rdx
18012ad67:	74 05                	je     0x18012ad6e
18012ad69:	48 85 c9             	test   %rcx,%rcx
18012ad6c:	74 55                	je     0x18012adc3
18012ad6e:	4c 8b 4d 30          	mov    0x30(%rbp),%r9
18012ad72:	b9 ff ff ff 7f       	mov    $0x7fffffff,%ecx
18012ad77:	48 3b d1             	cmp    %rcx,%rdx
18012ad7a:	c7 45 e8 42 00 00 00 	movl   $0x42,-0x18(%rbp)
18012ad81:	4d 8b c2             	mov    %r10,%r8
18012ad84:	48 89 5d e0          	mov    %rbx,-0x20(%rbp)
18012ad88:	0f 47 d1             	cmova  %ecx,%edx
18012ad8b:	48 89 5d d0          	mov    %rbx,-0x30(%rbp)
18012ad8f:	89 55 d8             	mov    %edx,-0x28(%rbp)
18012ad92:	48 8d 4d d0          	lea    -0x30(%rbp),%rcx
18012ad96:	48 8b d0             	mov    %rax,%rdx
18012ad99:	e8 ea 12 00 00       	call   0x18012c088
18012ad9e:	8b f8                	mov    %eax,%edi
18012ada0:	48 85 db             	test   %rbx,%rbx
18012ada3:	74 1a                	je     0x18012adbf
18012ada5:	83 6d d8 01          	subl   $0x1,-0x28(%rbp)
18012ada9:	78 09                	js     0x18012adb4
18012adab:	48 8b 4d d0          	mov    -0x30(%rbp),%rcx
18012adaf:	c6 01 00             	movb   $0x0,(%rcx)
18012adb2:	eb 0b                	jmp    0x18012adbf
18012adb4:	48 8d 55 d0          	lea    -0x30(%rbp),%rdx
18012adb8:	33 c9                	xor    %ecx,%ecx
18012adba:	e8 bd 12 00 00       	call   0x18012c07c
18012adbf:	8b c7                	mov    %edi,%eax
18012adc1:	eb 18                	jmp    0x18012addb
18012adc3:	48 83 64 24 20 00    	andq   $0x0,0x20(%rsp)
18012adc9:	45 33 c9             	xor    %r9d,%r9d
18012adcc:	45 33 c0             	xor    %r8d,%r8d
18012adcf:	33 d2                	xor    %edx,%edx
18012add1:	33 c9                	xor    %ecx,%ecx
18012add3:	e8 54 ad ee ff       	call   0x180015b2c
18012add8:	83 c8 ff             	or     $0xffffffff,%eax
18012addb:	48 8b 5c 24 70       	mov    0x70(%rsp),%rbx
18012ade0:	48 8b 7c 24 78       	mov    0x78(%rsp),%rdi
18012ade5:	48 83 c4 60          	add    $0x60,%rsp
18012ade9:	5d                   	pop    %rbp
18012adea:	c3                   	ret
18012adeb:	cc                   	int3
18012adec:	4c 8b c9             	mov    %rcx,%r9
18012adef:	4c 8b d2             	mov    %rdx,%r10
18012adf2:	4c 2b ca             	sub    %rdx,%r9
18012adf5:	47 0f b7 04 11       	movzwl (%r9,%r10,1),%r8d
18012adfa:	41 0f b7 0a          	movzwl (%r10),%ecx
18012adfe:	4d 8d 52 02          	lea    0x2(%r10),%r10
18012ae02:	41 8d 40 bf          	lea    -0x41(%r8),%eax
18012ae06:	66 83 f8 19          	cmp    $0x19,%ax
18012ae0a:	41 8d 50 20          	lea    0x20(%r8),%edx
18012ae0e:	8d 41 bf             	lea    -0x41(%rcx),%eax
18012ae11:	66 41 0f 47 d0       	cmova  %r8w,%dx
18012ae16:	66 83 f8 19          	cmp    $0x19,%ax
18012ae1a:	44 8d 41 20          	lea    0x20(%rcx),%r8d
18012ae1e:	66 44 0f 47 c1       	cmova  %cx,%r8w
18012ae23:	66 85 d2             	test   %dx,%dx
18012ae26:	74 06                	je     0x18012ae2e
18012ae28:	66 41 3b d0          	cmp    %r8w,%dx
18012ae2c:	74 c7                	je     0x18012adf5
18012ae2e:	41 0f b7 c8          	movzwl %r8w,%ecx
18012ae32:	0f b7 c2             	movzwl %dx,%eax
18012ae35:	2b c1                	sub    %ecx,%eax
18012ae37:	c3                   	ret
18012ae38:	cc                   	int3
18012ae39:	cc                   	int3
18012ae3a:	cc                   	int3
18012ae3b:	cc                   	int3
18012ae3c:	48 89 5c 24 08       	mov    %rbx,0x8(%rsp)
18012ae41:	45 33 c9             	xor    %r9d,%r9d
18012ae44:	49 8b d8             	mov    %r8,%rbx
18012ae47:	4c 8b da             	mov    %rdx,%r11
18012ae4a:	4c 8b d1             	mov    %rcx,%r10
18012ae4d:	4d 85 c0             	test   %r8,%r8
18012ae50:	74 4a                	je     0x18012ae9c
18012ae52:	4c 2b d2             	sub    %rdx,%r10
18012ae55:	43 0f b7 0c 1a       	movzwl (%r10,%r11,1),%ecx
18012ae5a:	8d 41 bf             	lea    -0x41(%rcx),%eax
18012ae5d:	66 83 f8 19          	cmp    $0x19,%ax
18012ae61:	8d 51 20             	lea    0x20(%rcx),%edx
18012ae64:	66 0f 47 d1          	cmova  %cx,%dx
18012ae68:	41 0f b7 0b          	movzwl (%r11),%ecx
18012ae6c:	4d 8d 5b 02          	lea    0x2(%r11),%r11
18012ae70:	8d 41 bf             	lea    -0x41(%rcx),%eax
18012ae73:	66 83 f8 19          	cmp    $0x19,%ax
18012ae77:	44 8d 41 20          	lea    0x20(%rcx),%r8d
18012ae7b:	66 44 0f 47 c1       	cmova  %cx,%r8w
18012ae80:	48 83 eb 01          	sub    $0x1,%rbx
18012ae84:	74 0b                	je     0x18012ae91
18012ae86:	66 85 d2             	test   %dx,%dx
18012ae89:	74 06                	je     0x18012ae91
18012ae8b:	66 41 3b d0          	cmp    %r8w,%dx
18012ae8f:	74 c4                	je     0x18012ae55
18012ae91:	41 0f b7 c0          	movzwl %r8w,%eax
18012ae95:	44 0f b7 ca          	movzwl %dx,%r9d
18012ae99:	44 2b c8             	sub    %eax,%r9d
18012ae9c:	48 8b 5c 24 08       	mov    0x8(%rsp),%rbx
18012aea1:	41 8b c1             	mov    %r9d,%eax
18012aea4:	c3                   	ret
18012aea5:	cc                   	int3
18012aea6:	cc                   	int3
18012aea7:	cc                   	int3
18012aea8:	48 83 ec 38          	sub    $0x38,%rsp
18012aeac:	48 83 64 24 28 00    	andq   $0x0,0x28(%rsp)
18012aeb2:	45 8b c8             	mov    %r8d,%r9d
18012aeb5:	4c 8b c2             	mov    %rdx,%r8
18012aeb8:	c7 44 24 20 01 00 00 	movl   $0x1,0x20(%rsp)
18012aebf:	00
18012aec0:	48 8b d1             	mov    %rcx,%rdx
18012aec3:	48 8d 0d 36 72 01 00 	lea    0x17236(%rip),%rcx        # 0x180142100
18012aeca:	e8 09 00 00 00       	call   0x18012aed8
18012aecf:	48 83 c4 38          	add    $0x38,%rsp
18012aed3:	c3                   	ret
18012aed4:	cc                   	int3
18012aed5:	cc                   	int3
18012aed6:	cc                   	int3
18012aed7:	cc                   	int3
18012aed8:	48 89 5c 24 08       	mov    %rbx,0x8(%rsp)
18012aedd:	48 89 54 24 10       	mov    %rdx,0x10(%rsp)
18012aee2:	55                   	push   %rbp
18012aee3:	56                   	push   %rsi
18012aee4:	57                   	push   %rdi
18012aee5:	41 54                	push   %r12
18012aee7:	41 55                	push   %r13
18012aee9:	41 56                	push   %r14
18012aeeb:	41 57                	push   %r15
18012aeed:	48 83 ec 30          	sub    $0x30,%rsp
18012aef1:	45 8b f1             	mov    %r9d,%r14d
18012aef4:	4d 8b f8             	mov    %r8,%r15
18012aef7:	4c 8b e2             	mov    %rdx,%r12
18012aefa:	4d 85 c0             	test   %r8,%r8
18012aefd:	74 03                	je     0x18012af02
18012aeff:	49 89 10             	mov    %rdx,(%r8)
18012af02:	4d 85 e4             	test   %r12,%r12
18012af05:	0f 84 08 02 00 00    	je     0x18012b113
18012af0b:	45 85 f6             	test   %r14d,%r14d
18012af0e:	74 0d                	je     0x18012af1d
18012af10:	41 8d 41 fe          	lea    -0x2(%r9),%eax
18012af14:	83 f8 22             	cmp    $0x22,%eax