18003fe40:	48 8b c4             	mov    %rsp,%rax
18003fe43:	48 89 58 08          	mov    %rbx,0x8(%rax)
18003fe47:	48 89 68 10          	mov    %rbp,0x10(%rax)
18003fe4b:	48 89 70 18          	mov    %rsi,0x18(%rax)
18003fe4f:	57                   	push   %rdi
18003fe50:	41 56                	push   %r14
18003fe52:	41 57                	push   %r15
18003fe54:	48 83 ec 40          	sub    $0x40,%rsp
18003fe58:	0f 57 c0             	xorps  %xmm0,%xmm0
18003fe5b:	0f 57 c9             	xorps  %xmm1,%xmm1
18003fe5e:	48 83 cb ff          	or     $0xffffffffffffffff,%rbx
18003fe62:	4c 8b fa             	mov    %rdx,%r15
18003fe65:	0f 11 40 d8          	movups %xmm0,-0x28(%rax)
18003fe69:	48 8b f1             	mov    %rcx,%rsi
18003fe6c:	0f 11 48 c8          	movups %xmm1,-0x38(%rax)
18003fe70:	48 8b c3             	mov    %rbx,%rax
18003fe73:	48 ff c0             	inc    %rax
18003fe76:	80 3c 01 00          	cmpb   $0x0,(%rcx,%rax,1)
18003fe7a:	75 f7                	jne    0x18003fe73
18003fe7c:	85 c0                	test   %eax,%eax
18003fe7e:	74 68                	je     0x18003fee8
18003fe80:	48 63 c8             	movslq %eax,%rcx
18003fe83:	48 83 e9 01          	sub    $0x1,%rcx
18003fe87:	78 1b                	js     0x18003fea4
18003fe89:	48 8d 3c 31          	lea    (%rcx,%rsi,1),%rdi
18003fe8d:	0f be 0f             	movsbl (%rdi),%ecx
18003fe90:	e8 73 bc 0e 00       	call   0x18012bb08
18003fe95:	85 c0                	test   %eax,%eax
18003fe97:	74 0b                	je     0x18003fea4
18003fe99:	c6 07 00             	movb   $0x0,(%rdi)
18003fe9c:	48 ff cf             	dec    %rdi
18003fe9f:	48 3b fe             	cmp    %rsi,%rdi
18003fea2:	79 e9                	jns    0x18003fe8d
18003fea4:	48 ff c3             	inc    %rbx
18003fea7:	80 3c 1e 00          	cmpb   $0x0,(%rsi,%rbx,1)
18003feab:	75 f7                	jne    0x18003fea4
18003fead:	85 db                	test   %ebx,%ebx
18003feaf:	74 37                	je     0x18003fee8
18003feb1:	33 ed                	xor    %ebp,%ebp
18003feb3:	4c 63 f3             	movslq %ebx,%r14
18003feb6:	85 db                	test   %ebx,%ebx
18003feb8:	7e 19                	jle    0x18003fed3
18003feba:	33 ff                	xor    %edi,%edi
18003febc:	0f be 0c 37          	movsbl (%rdi,%rsi,1),%ecx
18003fec0:	e8 43 bc 0e 00       	call   0x18012bb08
18003fec5:	85 c0                	test   %eax,%eax
18003fec7:	74 0a                	je     0x18003fed3
18003fec9:	ff c5                	inc    %ebp
18003fecb:	48 ff c7             	inc    %rdi
18003fece:	49 3b fe             	cmp    %r14,%rdi
18003fed1:	7c e9                	jl     0x18003febc
18003fed3:	2b dd                	sub    %ebp,%ebx
18003fed5:	48 63 d5             	movslq %ebp,%rdx
18003fed8:	ff c3                	inc    %ebx
18003feda:	48 03 d6             	add    %rsi,%rdx
18003fedd:	4c 63 c3             	movslq %ebx,%r8
18003fee0:	48 8b ce             	mov    %rsi,%rcx
18003fee3:	e8 d8 5a 0f 00       	call   0x1801359c0
18003fee8:	48 8b d6             	mov    %rsi,%rdx
18003feeb:	48 8d 4c 24 30       	lea    0x30(%rsp),%rcx
18003fef0:	e8 23 de 03 00       	call   0x18007dd18
18003fef5:	0f b7 44 24 30       	movzwl 0x30(%rsp),%eax
18003fefa:	8d 04 45 02 00 00 00 	lea    0x2(,%rax,2),%eax
18003ff01:	8b c8                	mov    %eax,%ecx
18003ff03:	66 89 44 24 22       	mov    %ax,0x22(%rsp)
18003ff08:	e8 07 6a 00 00       	call   0x180046914
18003ff0d:	48 89 44 24 28       	mov    %rax,0x28(%rsp)
18003ff12:	48 85 c0             	test   %rax,%rax
18003ff15:	75 07                	jne    0x18003ff1e
18003ff17:	bb 9a 00 00 c0       	mov    $0xc000009a,%ebx
18003ff1c:	eb 43                	jmp    0x18003ff61
18003ff1e:	45 33 c0             	xor    %r8d,%r8d
18003ff21:	48 8d 54 24 30       	lea    0x30(%rsp),%rdx
18003ff26:	48 8d 4c 24 20       	lea    0x20(%rsp),%rcx
18003ff2b:	e8 60 d8 03 00       	call   0x18007d790
18003ff30:	8b d8                	mov    %eax,%ebx
18003ff32:	85 c0                	test   %eax,%eax
18003ff34:	78 1c                	js     0x18003ff52
18003ff36:	49 8b 4f 08          	mov    0x8(%r15),%rcx
18003ff3a:	48 85 c9             	test   %rcx,%rcx
18003ff3d:	74 05                	je     0x18003ff44
18003ff3f:	e8 18 6a 00 00       	call   0x18004695c
18003ff44:	0f 10 44 24 20       	movups 0x20(%rsp),%xmm0
18003ff49:	33 c9                	xor    %ecx,%ecx
18003ff4b:	f3 41 0f 7f 07       	movdqu %xmm0,(%r15)
18003ff50:	eb 05                	jmp    0x18003ff57
18003ff52:	48 8b 4c 24 28       	mov    0x28(%rsp),%rcx
18003ff57:	48 85 c9             	test   %rcx,%rcx
18003ff5a:	74 05                	je     0x18003ff61
18003ff5c:	e8 fb 69 00 00       	call   0x18004695c
18003ff61:	48 8b 6c 24 68       	mov    0x68(%rsp),%rbp
18003ff66:	8b c3                	mov    %ebx,%eax
18003ff68:	48 8b 5c 24 60       	mov    0x60(%rsp),%rbx
18003ff6d:	48 8b 74 24 70       	mov    0x70(%rsp),%rsi
18003ff72:	48 83 c4 40          	add    $0x40,%rsp
18003ff76:	41 5f                	pop    %r15
18003ff78:	41 5e                	pop    %r14
18003ff7a:	5f                   	pop    %rdi
18003ff7b:	c3                   	ret
18003ff7c:	cc                   	int3
18003ff7d:	cc                   	int3
18003ff7e:	cc                   	int3
18003ff7f:	cc                   	int3
18003ff80:	44 8b c9             	mov    %ecx,%r9d
18003ff83:	4c 8d 05 fe c8 10 00 	lea    0x10c8fe(%rip),%r8        # 0x18014c888
18003ff8a:	33 c0                	xor    %eax,%eax
18003ff8c:	41 8b 08             	mov    (%r8),%ecx
18003ff8f:	3b d1                	cmp    %ecx,%edx
18003ff91:	74 61                	je     0x18003fff4
18003ff93:	44 3b c9             	cmp    %ecx,%r9d
18003ff96:	74 58                	je     0x18003fff0
18003ff98:	ff c0                	inc    %eax
18003ff9a:	49 83 c0 04          	add    $0x4,%r8
18003ff9e:	83 f8 06             	cmp    $0x6,%eax
18003ffa1:	72 e9                	jb     0x18003ff8c
18003ffa3:	41 8b c1             	mov    %r9d,%eax
18003ffa6:	8b ca                	mov    %edx,%ecx
18003ffa8:	c1 e8 1e             	shr    $0x1e,%eax
18003ffab:	c1 e9 1e             	shr    $0x1e,%ecx
18003ffae:	3b c8                	cmp    %eax,%ecx
18003ffb0:	77 42                	ja     0x18003fff4
18003ffb2:	72 3c                	jb     0x18003fff0
18003ffb4:	41 8b c1             	mov    %r9d,%eax
18003ffb7:	8b ca                	mov    %edx,%ecx
18003ffb9:	c1 e8 10             	shr    $0x10,%eax
18003ffbc:	81 e1 00 00 ff 0f    	and    $0xfff0000,%ecx
18003ffc2:	25 ff 0f 00 00       	and    $0xfff,%eax
18003ffc7:	41 ba 00 00 e7 00    	mov    $0xe70000,%r10d
18003ffcd:	41 b8 e7 00 00 00    	mov    $0xe7,%r8d
18003ffd3:	41 3b ca             	cmp    %r10d,%ecx
18003ffd6:	75 05                	jne    0x18003ffdd
18003ffd8:	41 3b c0             	cmp    %r8d,%eax
18003ffdb:	75 17                	jne    0x18003fff4
18003ffdd:	41 3b c0             	cmp    %r8d,%eax
18003ffe0:	75 05                	jne    0x18003ffe7
18003ffe2:	41 3b ca             	cmp    %r10d,%ecx
18003ffe5:	75 09                	jne    0x18003fff0
18003ffe7:	66 44 3b ca          	cmp    %dx,%r9w
18003ffeb:	0f 97 c0             	seta   %al
18003ffee:	c3                   	ret
18003ffef:	cc                   	int3
18003fff0:	b0 01                	mov    $0x1,%al
18003fff2:	c3                   	ret
18003fff3:	cc                   	int3
18003fff4:	32 c0                	xor    %al,%al
18003fff6:	c3                   	ret
18003fff7:	cc                   	int3
18003fff8:	48 8d 05 c9 2f 10 00 	lea    0x102fc9(%rip),%rax        # 0x180142fc8
18003ffff:	48 89 01             	mov    %rax,(%rcx)
180040002:	33 c0                	xor    %eax,%eax
180040004:	48 89 41 08          	mov    %rax,0x8(%rcx)
180040008:	48 89 41 10          	mov    %rax,0x10(%rcx)
18004000c:	66 89 41 18          	mov    %ax,0x18(%rcx)
180040010:	48 8b c1             	mov    %rcx,%rax
180040013:	c3                   	ret
180040014:	cc                   	int3
180040015:	cc                   	int3
180040016:	cc                   	int3
180040017:	cc                   	int3
180040018:	40 53                	rex push %rbx
18004001a:	48 83 ec 20          	sub    $0x20,%rsp
18004001e:	48 8d 05 a3 2f 10 00 	lea    0x102fa3(%rip),%rax        # 0x180142fc8
180040025:	48 8b d9             	mov    %rcx,%rbx
180040028:	48 89 01             	mov    %rax,(%rcx)
18004002b:	f6 c2 01             	test   $0x1,%dl
18004002e:	74 05                	je     0x180040035
180040030:	e8 27 69 00 00       	call   0x18004695c
180040035:	48 8b c3             	mov    %rbx,%rax
180040038:	48 83 c4 20          	add    $0x20,%rsp
18004003c:	5b                   	pop    %rbx
18004003d:	c3                   	ret
18004003e:	cc                   	int3
18004003f:	cc                   	int3
180040040:	40 53                	rex push %rbx
180040042:	48 83 ec 20          	sub    $0x20,%rsp
180040046:	48 8d 05 db 30 10 00 	lea    0x1030db(%rip),%rax        # 0x180143128
18004004d:	48 8b d9             	mov    %rcx,%rbx
180040050:	48 89 01             	mov    %rax,(%rcx)
180040053:	48 8b 89 e0 00 00 00 	mov    0xe0(%rcx),%rcx
18004005a:	48 85 c9             	test   %rcx,%rcx
18004005d:	74 05                	je     0x180040064
18004005f:	e8 f8 68 00 00       	call   0x18004695c
180040064:	48 8b 4b 38          	mov    0x38(%rbx),%rcx
180040068:	48 85 c9             	test   %rcx,%rcx
18004006b:	74 05                	je     0x180040072
18004006d:	e8 ea 68 00 00       	call   0x18004695c
180040072:	48 8b 4b 30          	mov    0x30(%rbx),%rcx
180040076:	48 85 c9             	test   %rcx,%rcx
180040079:	74 05                	je     0x180040080
18004007b:	e8 dc 68 00 00       	call   0x18004695c
180040080:	48 8d 05 41 2f 10 00 	lea    0x102f41(%rip),%rax        # 0x180142fc8
180040087:	48 89 03             	mov    %rax,(%rbx)
18004008a:	48 83 c4 20          	add    $0x20,%rsp
18004008e:	5b                   	pop    %rbx
18004008f:	c3                   	ret
180040090:	cc                   	int3
180040091:	cc                   	int3
180040092:	cc                   	int3
180040093:	cc                   	int3
180040094:	48 89 5c 24 08       	mov    %rbx,0x8(%rsp)
180040099:	57                   	push   %rdi
18004009a:	48 83 ec 20          	sub    $0x20,%rsp
18004009e:	8b da                	mov    %edx,%ebx
1800400a0:	48 8b f9             	mov    %rcx,%rdi
1800400a3:	e8 98 ff ff ff       	call   0x180040040
1800400a8:	f6 c3 01             	test   $0x1,%bl
1800400ab:	74 08                	je     0x1800400b5
1800400ad:	48 8b cf             	mov    %rdi,%rcx
1800400b0:	e8 a7 68 00 00       	call   0x18004695c
1800400b5:	48 8b 5c 24 30       	mov    0x30(%rsp),%rbx
1800400ba:	48 8b c7             	mov    %rdi,%rax
1800400bd:	48 83 c4 20          	add    $0x20,%rsp
1800400c1:	5f                   	pop    %rdi
1800400c2:	c3                   	ret
1800400c3:	cc                   	int3
1800400c4:	48 83 89 d0 00 00 00 	orq    $0xffffffffffffffff,0xd0(%rcx)
1800400cb:	ff
1800400cc:	ba 01 00 00 00       	mov    $0x1,%edx
1800400d1:	b8 00 00 00 10       	mov    $0x10000000,%eax
1800400d6:	89 51 44             	mov    %edx,0x44(%rcx)
1800400d9:	48 89 41 58          	mov    %rax,0x58(%rcx)
1800400dd:	48 89 41 68          	mov    %rax,0x68(%rcx)
1800400e1:	c7 41 48 00 02 00 00 	movl   $0x200,0x48(%rcx)
1800400e8:	8d 42 02             	lea    0x2(%rdx),%eax
1800400eb:	c7 41 4c 00 10 00 00 	movl   $0x1000,0x4c(%rcx)
1800400f2:	89 51 54             	mov    %edx,0x54(%rcx)
1800400f5:	89 51 74             	mov    %edx,0x74(%rcx)
1800400f8:	89 51 78             	mov    %edx,0x78(%rcx)
1800400fb:	48 81 c1 90 00 00 00 	add    $0x90,%rcx
180040102:	89 11                	mov    %edx,(%rcx)
180040104:	48 8d 49 18          	lea    0x18(%rcx),%rcx
180040108:	48 2b c2             	sub    %rdx,%rax
18004010b:	75 f5                	jne    0x180040102
18004010d:	c3                   	ret
18004010e:	cc                   	int3
18004010f:	cc                   	int3
180040110:	48 8b c4             	mov    %rsp,%rax
180040113:	48 89 58 08          	mov    %rbx,0x8(%rax)
180040117:	48 89 68 10          	mov    %rbp,0x10(%rax)
18004011b:	48 89 70 18          	mov    %rsi,0x18(%rax)
18004011f:	48 89 78 20          	mov    %rdi,0x20(%rax)
180040123:	41 56                	push   %r14
180040125:	48 83 ec 20          	sub    $0x20,%rsp
180040129:	48 8b f9             	mov    %rcx,%rdi
18004012c:	33 f6                	xor    %esi,%esi
18004012e:	b9 28 01 00 00       	mov    $0x128,%ecx
180040133:	e8 dc 67 00 00       	call   0x180046914
180040138:	48 8b d8             	mov    %rax,%rbx
18004013b:	48 85 c0             	test   %rax,%rax
18004013e:	74 18                	je     0x180040158
180040140:	48 21 70 08          	and    %rsi,0x8(%rax)
180040144:	48 21 70 10          	and    %rsi,0x10(%rax)
180040148:	66 89 70 18          	mov    %si,0x18(%rax)
18004014c:	48 8d 05 d5 2f 10 00 	lea    0x102fd5(%rip),%rax        # 0x180143128
180040153:	48 89 03             	mov    %rax,(%rbx)
180040156:	eb 02                	jmp    0x18004015a
180040158:	33 db                	xor    %ebx,%ebx
18004015a:	48 85 db             	test   %rbx,%rbx
18004015d:	0f 84 05 01 00 00    	je     0x180040268
180040163:	ba 02 00 00 00       	mov    $0x2,%edx
180040168:	48 8b cb             	mov    %rbx,%rcx
18004016b:	48 8b c7             	mov    %rdi,%rax
18004016e:	44 8d 42 7e          	lea    0x7e(%rdx),%r8d
180040172:	0f 10 00             	movups (%rax),%xmm0
180040175:	0f 11 01             	movups %xmm0,(%rcx)
180040178:	0f 10 48 10          	movups 0x10(%rax),%xmm1
18004017c:	0f 11 49 10          	movups %xmm1,0x10(%rcx)
180040180:	0f 10 40 20          	movups 0x20(%rax),%xmm0
180040184:	0f 11 41 20          	movups %xmm0,0x20(%rcx)
180040188:	0f 10 48 30          	movups 0x30(%rax),%xmm1
18004018c:	0f 11 49 30          	movups %xmm1,0x30(%rcx)
180040190:	0f 10 40 40          	movups 0x40(%rax),%xmm0
180040194:	0f 11 41 40          	movups %xmm0,0x40(%rcx)
180040198:	0f 10 48 50          	movups 0x50(%rax),%xmm1
18004019c:	0f 11 49 50          	movups %xmm1,0x50(%rcx)
1800401a0:	0f 10 40 60          	movups 0x60(%rax),%xmm0
1800401a4:	0f 11 41 60          	movups %xmm0,0x60(%rcx)
1800401a8:	49 03 c8             	add    %r8,%rcx
1800401ab:	0f 10 48 70          	movups 0x70(%rax),%xmm1
1800401af:	49 03 c0             	add    %r8,%rax
1800401b2:	0f 11 49 f0          	movups %xmm1,-0x10(%rcx)
1800401b6:	48 83 ea 01          	sub    $0x1,%rdx
1800401ba:	75 b6                	jne    0x180040172
1800401bc:	0f 10 00             	movups (%rax),%xmm0
1800401bf:	4c 8d 43 30          	lea    0x30(%rbx),%r8
1800401c3:	0f 11 01             	movups %xmm0,(%rcx)
1800401c6:	0f 10 48 10          	movups 0x10(%rax),%xmm1
1800401ca:	0f 11 49 10          	movups %xmm1,0x10(%rcx)
1800401ce:	48 8b 40 20          	mov    0x20(%rax),%rax
1800401d2:	48 89 41 20          	mov    %rax,0x20(%rcx)
1800401d6:	49 21 30             	and    %rsi,(%r8)
1800401d9:	48 21 73 38          	and    %rsi,0x38(%rbx)
1800401dd:	48 21 b3 e0 00 00 00 	and    %rsi,0xe0(%rbx)
1800401e4:	48 8b 4f 30          	mov    0x30(%rdi),%rcx
1800401e8:	48 85 c9             	test   %rcx,%rcx
1800401eb:	74 0e                	je     0x1800401fb
1800401ed:	ba 00 01 00 00       	mov    $0x100,%edx
1800401f2:	e8 e1 fa ff ff       	call   0x18003fcd8
1800401f7:	85 c0                	test   %eax,%eax
1800401f9:	78 55                	js     0x180040250
1800401fb:	48 8b 4f 38          	mov    0x38(%rdi),%rcx
1800401ff:	48 85 c9             	test   %rcx,%rcx
180040202:	74 12                	je     0x180040216
180040204:	4c 8d 43 38          	lea    0x38(%rbx),%r8
180040208:	ba 00 04 00 00       	mov    $0x400,%edx
18004020d:	e8 c6 fa ff ff       	call   0x18003fcd8
180040212:	85 c0                	test   %eax,%eax
180040214:	78 3a                	js     0x180040250
180040216:	48 39 b7 e0 00 00 00 	cmp    %rsi,0xe0(%rdi)
18004021d:	74 2c                	je     0x18004024b
18004021f:	0f b7 ab f8 00 00 00 	movzwl 0xf8(%rbx),%ebp
180040226:	8b cd                	mov    %ebp,%ecx
180040228:	e8 e7 66 00 00       	call   0x180046914
18004022d:	48 89 83 e0 00 00 00 	mov    %rax,0xe0(%rbx)
180040234:	48 85 c0             	test   %rax,%rax
180040237:	74 17                	je     0x180040250
180040239:	48 8b 97 e0 00 00 00 	mov    0xe0(%rdi),%rdx
180040240:	44 8b c5             	mov    %ebp,%r8d
180040243:	48 8b c8             	mov    %rax,%rcx
180040246:	e8 75 57 0f 00       	call   0x1801359c0
18004024b:	48 8b f3             	mov    %rbx,%rsi
18004024e:	33 db                	xor    %ebx,%ebx
180040250:	48 85 db             	test   %rbx,%rbx
180040253:	74 13                	je     0x180040268
180040255:	48 8b 03             	mov    (%rbx),%rax
180040258:	ba 01 00 00 00       	mov    $0x1,%edx
18004025d:	48 8b cb             	mov    %rbx,%rcx
180040260:	48 8b 00             	mov    (%rax),%rax
180040263:	ff d0                	call   *%rax
180040265:	0f 1f 00             	nopl   (%rax)
180040268:	48 8b 5c 24 30       	mov    0x30(%rsp),%rbx
18004026d:	48 8b c6             	mov    %rsi,%rax
180040270:	48 8b 74 24 40       	mov    0x40(%rsp),%rsi
180040275:	48 8b 6c 24 38       	mov    0x38(%rsp),%rbp
18004027a:	48 8b 7c 24 48       	mov    0x48(%rsp),%rdi
18004027f:	48 83 c4 20          	add    $0x20,%rsp
180040283:	41 5e                	pop    %r14
180040285:	c3                   	ret
180040286:	cc                   	int3
180040287:	cc                   	int3
180040288:	48 8b c4             	mov    %rsp,%rax
18004028b:	48 89 58 08          	mov    %rbx,0x8(%rax)
18004028f:	48 89 68 10          	mov    %rbp,0x10(%rax)
180040293:	48 89 70 18          	mov    %rsi,0x18(%rax)
180040297:	48 89 78 20          	mov    %rdi,0x20(%rax)
18004029b:	41 57                	push   %r15
18004029d:	48 83 ec 20          	sub    $0x20,%rsp
1800402a1:	0f b6 42 11          	movzbl 0x11(%rdx),%eax
1800402a5:	4c 8d 3d 54 fd fb ff 	lea    -0x402ac(%rip),%r15        # 0x180000000
1800402ac:	48 8b ea             	mov    %rdx,%rbp