180085e73:	44 8b c2             	mov    %edx,%r8d
180085e76:	48 8b d1             	mov    %rcx,%rdx
180085e79:	33 c9                	xor    %ecx,%ecx
180085e7b:	e9 b8 13 fb ff       	jmp    0x180037238
180085e80:	8b 42 08             	mov    0x8(%rdx),%eax
180085e83:	39 41 08             	cmp    %eax,0x8(%rcx)
180085e86:	76 07                	jbe    0x180085e8f
180085e88:	b8 01 00 00 00       	mov    $0x1,%eax
180085e8d:	c3                   	ret
180085e8e:	cc                   	int3
180085e8f:	1b c0                	sbb    %eax,%eax
180085e91:	c3                   	ret
180085e92:	cc                   	int3
180085e93:	cc                   	int3
180085e94:	33 c0                	xor    %eax,%eax
180085e96:	4c 8b c9             	mov    %rcx,%r9
180085e99:	85 d2                	test   %edx,%edx
180085e9b:	74 2c                	je     0x180085ec9
180085e9d:	44 8b d0             	mov    %eax,%r10d
180085ea0:	44 8b da             	mov    %edx,%r11d
180085ea3:	45 0f b6 01          	movzbl (%r9),%r8d
180085ea7:	41 8a d2             	mov    %r10b,%dl
180085eaa:	80 e2 03             	and    $0x3,%dl
180085ead:	b9 03 00 00 00       	mov    $0x3,%ecx
180085eb2:	2a ca                	sub    %dl,%cl
180085eb4:	49 ff c2             	inc    %r10
180085eb7:	c0 e1 03             	shl    $0x3,%cl
180085eba:	49 ff c1             	inc    %r9
180085ebd:	41 d3 e0             	shl    %cl,%r8d
180085ec0:	41 03 c0             	add    %r8d,%eax
180085ec3:	49 83 eb 01          	sub    $0x1,%r11
180085ec7:	75 da                	jne    0x180085ea3
180085ec9:	c3                   	ret
180085eca:	cc                   	int3
180085ecb:	cc                   	int3
180085ecc:	48 8b c4             	mov    %rsp,%rax
180085ecf:	4c 89 48 20          	mov    %r9,0x20(%rax)
180085ed3:	4c 89 40 18          	mov    %r8,0x18(%rax)
180085ed7:	48 89 50 10          	mov    %rdx,0x10(%rax)
180085edb:	89 48 08             	mov    %ecx,0x8(%rax)
180085ede:	55                   	push   %rbp
180085edf:	53                   	push   %rbx
180085ee0:	56                   	push   %rsi
180085ee1:	57                   	push   %rdi
180085ee2:	41 54                	push   %r12
180085ee4:	41 55                	push   %r13
180085ee6:	41 56                	push   %r14
180085ee8:	41 57                	push   %r15
180085eea:	48 8d 68 a1          	lea    -0x5f(%rax),%rbp
180085eee:	48 81 ec d8 00 00 00 	sub    $0xd8,%rsp
180085ef5:	33 f6                	xor    %esi,%esi
180085ef7:	4c 8b ea             	mov    %rdx,%r13
180085efa:	48 8d 55 f7          	lea    -0x9(%rbp),%rdx
180085efe:	89 74 24 38          	mov    %esi,0x38(%rsp)
180085f02:	44 8b f1             	mov    %ecx,%r14d
180085f05:	8b fe                	mov    %esi,%edi
180085f07:	44 8b e6             	mov    %esi,%r12d
180085f0a:	8d 46 01             	lea    0x1(%rsi),%eax
180085f0d:	66 89 44 24 30       	mov    %ax,0x30(%rsp)
180085f12:	e8 01 2e fe ff       	call   0x180068d18
180085f17:	8b d8                	mov    %eax,%ebx
180085f19:	85 c0                	test   %eax,%eax
180085f1b:	0f 88 de 09 00 00    	js     0x1800868ff
180085f21:	48 83 7d f7 0c       	cmpq   $0xc,-0x9(%rbp)
180085f26:	73 0a                	jae    0x180085f32
180085f28:	bb c4 02 00 c0       	mov    $0xc00002c4,%ebx
180085f2d:	e9 cd 09 00 00       	jmp    0x1800868ff
180085f32:	45 33 c0             	xor    %r8d,%r8d
180085f35:	89 74 24 28          	mov    %esi,0x28(%rsp)
180085f39:	4c 8d 4d c7          	lea    -0x39(%rbp),%r9
180085f3d:	48 89 74 24 20       	mov    %rsi,0x20(%rsp)
180085f42:	41 8b ce             	mov    %r14d,%ecx
180085f45:	41 8d 50 0c          	lea    0xc(%r8),%edx
180085f49:	e8 02 30 fe ff       	call   0x180068f50
180085f4e:	8b d8                	mov    %eax,%ebx
180085f50:	85 c0                	test   %eax,%eax
180085f52:	0f 88 a7 09 00 00    	js     0x1800868ff
180085f58:	8b 4d c7             	mov    -0x39(%rbp),%ecx
180085f5b:	8b d1                	mov    %ecx,%edx
180085f5d:	66 c1 45 cd 08       	rolw   $0x8,-0x33(%rbp)
180085f62:	81 e2 00 00 ff 00    	and    $0xff0000,%edx
180085f68:	66 c1 45 cf 08       	rolw   $0x8,-0x31(%rbp)
180085f6d:	8b c1                	mov    %ecx,%eax
180085f6f:	66 c1 45 d1 08       	rolw   $0x8,-0x2f(%rbp)
180085f74:	c1 e8 10             	shr    $0x10,%eax
180085f77:	0b d0                	or     %eax,%edx
180085f79:	8b c1                	mov    %ecx,%eax
180085f7b:	25 00 ff 00 00       	and    $0xff00,%eax
180085f80:	c1 e1 10             	shl    $0x10,%ecx
180085f83:	0b c1                	or     %ecx,%eax
180085f85:	c1 ea 08             	shr    $0x8,%edx
180085f88:	c1 e0 08             	shl    $0x8,%eax
180085f8b:	0b d0                	or     %eax,%edx
180085f8d:	0f b7 45 cb          	movzwl -0x35(%rbp),%eax
180085f91:	66 c1 c0 08          	rol    $0x8,%ax
180085f95:	89 55 c7             	mov    %edx,-0x39(%rbp)
180085f98:	66 89 45 cb          	mov    %ax,-0x35(%rbp)
180085f9c:	81 fa 00 00 01 00    	cmp    $0x10000,%edx
180085fa2:	75 84                	jne    0x180085f28
180085fa4:	0f b7 d8             	movzwl %ax,%ebx
180085fa7:	c1 e3 04             	shl    $0x4,%ebx
180085faa:	44 8d 7b 0c          	lea    0xc(%rbx),%r15d
180085fae:	41 8b cf             	mov    %r15d,%ecx
180085fb1:	44 89 7d bf          	mov    %r15d,-0x41(%rbp)
180085fb5:	48 39 4d f7          	cmp    %rcx,-0x9(%rbp)
180085fb9:	0f 82 69 ff ff ff    	jb     0x180085f28
180085fbf:	e8 8c 3e 01 00       	call   0x180099e50
180085fc4:	45 33 c0             	xor    %r8d,%r8d
180085fc7:	48 8b f0             	mov    %rax,%rsi
180085fca:	48 85 c0             	test   %rax,%rax
180085fcd:	75 0a                	jne    0x180085fd9
180085fcf:	bb 17 00 00 c0       	mov    $0xc0000017,%ebx
180085fd4:	e9 26 09 00 00       	jmp    0x1800868ff
180085fd9:	f2 0f 10 45 c7       	movsd  -0x39(%rbp),%xmm0
180085fde:	41 b9 00 ff 00 00    	mov    $0xff00,%r9d
180085fe4:	f2 0f 11 00          	movsd  %xmm0,(%rax)
180085fe8:	8b 45 cf             	mov    -0x31(%rbp),%eax
180085feb:	89 46 08             	mov    %eax,0x8(%rsi)
180085fee:	8b 0e                	mov    (%rsi),%ecx
180085ff0:	8b d1                	mov    %ecx,%edx
180085ff2:	8b c1                	mov    %ecx,%eax
180085ff4:	c1 e2 10             	shl    $0x10,%edx
180085ff7:	c1 e9 08             	shr    $0x8,%ecx
180085ffa:	41 23 c1             	and    %r9d,%eax
180085ffd:	41 23 c9             	and    %r9d,%ecx
180086000:	44 89 44 24 28       	mov    %r8d,0x28(%rsp)
180086005:	0b d0                	or     %eax,%edx
180086007:	4c 89 44 24 20       	mov    %r8,0x20(%rsp)
18008600c:	0f b6 46 03          	movzbl 0x3(%rsi),%eax
180086010:	4c 8d 4e 0c          	lea    0xc(%rsi),%r9
180086014:	c1 e2 08             	shl    $0x8,%edx
180086017:	41 b8 0c 00 00 00    	mov    $0xc,%r8d
18008601d:	0b d1                	or     %ecx,%edx
18008601f:	0f b7 4e 04          	movzwl 0x4(%rsi),%ecx
180086023:	66 c1 e1 08          	shl    $0x8,%cx
180086027:	0b d0                	or     %eax,%edx
180086029:	0f b6 46 05          	movzbl 0x5(%rsi),%eax
18008602d:	66 0b c8             	or     %ax,%cx
180086030:	89 16                	mov    %edx,(%rsi)
180086032:	0f b6 46 07          	movzbl 0x7(%rsi),%eax
180086036:	8b d3                	mov    %ebx,%edx
180086038:	66 89 4e 04          	mov    %cx,0x4(%rsi)
18008603c:	0f b7 4e 06          	movzwl 0x6(%rsi),%ecx
180086040:	66 c1 e1 08          	shl    $0x8,%cx
180086044:	66 0b c8             	or     %ax,%cx
180086047:	0f b6 46 09          	movzbl 0x9(%rsi),%eax
18008604b:	66 89 4e 06          	mov    %cx,0x6(%rsi)
18008604f:	0f b7 4e 08          	movzwl 0x8(%rsi),%ecx
180086053:	66 c1 e1 08          	shl    $0x8,%cx
180086057:	66 0b c8             	or     %ax,%cx
18008605a:	0f b6 46 0b          	movzbl 0xb(%rsi),%eax
18008605e:	66 89 4e 08          	mov    %cx,0x8(%rsi)
180086062:	0f b7 4e 0a          	movzwl 0xa(%rsi),%ecx
180086066:	66 c1 e1 08          	shl    $0x8,%cx
18008606a:	66 0b c8             	or     %ax,%cx
18008606d:	66 89 4e 0a          	mov    %cx,0xa(%rsi)
180086071:	41 8b ce             	mov    %r14d,%ecx
180086074:	e8 d7 2e fe ff       	call   0x180068f50
180086079:	8b d8                	mov    %eax,%ebx
18008607b:	85 c0                	test   %eax,%eax
18008607d:	0f 88 5a 08 00 00    	js     0x1800868dd
180086083:	41 8b d7             	mov    %r15d,%edx
180086086:	48 8b ce             	mov    %rsi,%rcx
180086089:	e8 06 fe ff ff       	call   0x180085e94
18008608e:	8b 0e                	mov    (%rsi),%ecx
180086090:	44 8b c0             	mov    %eax,%r8d
180086093:	8b d1                	mov    %ecx,%edx
180086095:	89 44 24 34          	mov    %eax,0x34(%rsp)
180086099:	8b c1                	mov    %ecx,%eax
18008609b:	c1 e2 10             	shl    $0x10,%edx
18008609e:	c1 e9 08             	shr    $0x8,%ecx
1800860a1:	41 ba 00 ff 00 00    	mov    $0xff00,%r10d
1800860a7:	41 23 ca             	and    %r10d,%ecx
1800860aa:	41 23 c2             	and    %r10d,%eax
1800860ad:	0b d0                	or     %eax,%edx
1800860af:	0f 57 c0             	xorps  %xmm0,%xmm0
1800860b2:	0f b6 46 03          	movzbl 0x3(%rsi),%eax
1800860b6:	c1 e2 08             	shl    $0x8,%edx
1800860b9:	0b d1                	or     %ecx,%edx
1800860bb:	0f b7 4e 06          	movzwl 0x6(%rsi),%ecx
1800860bf:	0b d0                	or     %eax,%edx
1800860c1:	66 c1 e1 08          	shl    $0x8,%cx
1800860c5:	0f b6 46 05          	movzbl 0x5(%rsi),%eax
1800860c9:	89 16                	mov    %edx,(%rsi)
1800860cb:	0f b7 56 04          	movzwl 0x4(%rsi),%edx
1800860cf:	66 c1 e2 08          	shl    $0x8,%dx
1800860d3:	66 0b d0             	or     %ax,%dx
1800860d6:	0f b6 46 07          	movzbl 0x7(%rsi),%eax
1800860da:	66 0b c8             	or     %ax,%cx
1800860dd:	66 89 56 04          	mov    %dx,0x4(%rsi)
1800860e1:	0f b6 46 09          	movzbl 0x9(%rsi),%eax
1800860e5:	66 89 4e 06          	mov    %cx,0x6(%rsi)
1800860e9:	0f b7 4e 08          	movzwl 0x8(%rsi),%ecx
1800860ed:	66 c1 e1 08          	shl    $0x8,%cx
1800860f1:	66 0b c8             	or     %ax,%cx
1800860f4:	0f b6 46 0b          	movzbl 0xb(%rsi),%eax
1800860f8:	66 89 4e 08          	mov    %cx,0x8(%rsi)
1800860fc:	0f b7 4e 0a          	movzwl 0xa(%rsi),%ecx
180086100:	66 c1 e1 08          	shl    $0x8,%cx
180086104:	66 0b c8             	or     %ax,%cx
180086107:	66 89 4e 0a          	mov    %cx,0xa(%rsi)
18008610b:	33 c9                	xor    %ecx,%ecx
18008610d:	44 8b f9             	mov    %ecx,%r15d
180086110:	8b d9                	mov    %ecx,%ebx
180086112:	44 8b f1             	mov    %ecx,%r14d
180086115:	0f 11 45 e7          	movups %xmm0,-0x19(%rbp)
180086119:	66 3b ca             	cmp    %dx,%cx
18008611c:	0f 83 37 01 00 00    	jae    0x180086259
180086122:	45 8b ce             	mov    %r14d,%r9d
180086125:	49 c1 e1 04          	shl    $0x4,%r9
180086129:	4c 03 ce             	add    %rsi,%r9
18008612c:	41 8b 49 10          	mov    0x10(%r9),%ecx
180086130:	44 8b d9             	mov    %ecx,%r11d
180086133:	8b c1                	mov    %ecx,%eax
180086135:	41 c1 e3 10          	shl    $0x10,%r11d
180086139:	41 23 c2             	and    %r10d,%eax
18008613c:	c1 e9 08             	shr    $0x8,%ecx
18008613f:	41 23 ca             	and    %r10d,%ecx
180086142:	44 0b d8             	or     %eax,%r11d
180086145:	41 0f b6 41 13       	movzbl 0x13(%r9),%eax
18008614a:	41 c1 e3 08          	shl    $0x8,%r11d
18008614e:	44 0b d9             	or     %ecx,%r11d
180086151:	41 8b 49 14          	mov    0x14(%r9),%ecx
180086155:	44 0b d8             	or     %eax,%r11d
180086158:	8b d1                	mov    %ecx,%edx
18008615a:	8b c1                	mov    %ecx,%eax
18008615c:	c1 e2 10             	shl    $0x10,%edx
18008615f:	41 23 c2             	and    %r10d,%eax
180086162:	c1 e9 08             	shr    $0x8,%ecx
180086165:	41 23 ca             	and    %r10d,%ecx
180086168:	45 89 59 10          	mov    %r11d,0x10(%r9)
18008616c:	0b d0                	or     %eax,%edx
18008616e:	41 0f b6 41 17       	movzbl 0x17(%r9),%eax
180086173:	c1 e2 08             	shl    $0x8,%edx
180086176:	0b d1                	or     %ecx,%edx
180086178:	41 8b 49 18          	mov    0x18(%r9),%ecx
18008617c:	0b d0                	or     %eax,%edx
18008617e:	44 8b d1             	mov    %ecx,%r10d
180086181:	41 c1 e2 10          	shl    $0x10,%r10d
180086185:	8b c1                	mov    %ecx,%eax
180086187:	c1 e9 08             	shr    $0x8,%ecx
18008618a:	41 89 51 14          	mov    %edx,0x14(%r9)
18008618e:	ba 00 ff 00 00       	mov    $0xff00,%edx
180086193:	23 c2                	and    %edx,%eax
180086195:	23 ca                	and    %edx,%ecx
180086197:	44 0b d0             	or     %eax,%r10d
18008619a:	41 0f b6 41 1b       	movzbl 0x1b(%r9),%eax
18008619f:	41 c1 e2 08          	shl    $0x8,%r10d
1800861a3:	44 0b d1             	or     %ecx,%r10d
1800861a6:	33 c9                	xor    %ecx,%ecx
1800861a8:	44 0b d0             	or     %eax,%r10d
1800861ab:	45 89 51 18          	mov    %r10d,0x18(%r9)
1800861af:	4d 85 ff             	test   %r15,%r15
1800861b2:	74 64                	je     0x180086218
1800861b4:	41 8b 0f             	mov    (%r15),%ecx
1800861b7:	44 8b c1             	mov    %ecx,%r8d
1800861ba:	41 8b 51 0c          	mov    0xc(%r9),%edx
1800861be:	8b c1                	mov    %ecx,%eax
1800861c0:	c1 e9 08             	shr    $0x8,%ecx
1800861c3:	25 00 ff 00 00       	and    $0xff00,%eax
1800861c8:	81 e1 00 ff 00 00    	and    $0xff00,%ecx
1800861ce:	41 c1 e0 10          	shl    $0x10,%r8d
1800861d2:	44 0b c0             	or     %eax,%r8d
1800861d5:	41 0f b6 47 03       	movzbl 0x3(%r15),%eax
1800861da:	41 c1 e0 08          	shl    $0x8,%r8d
1800861de:	41 bf 00 ff 00 00    	mov    $0xff00,%r15d
1800861e4:	44 0b c1             	or     %ecx,%r8d
1800861e7:	8b ca                	mov    %edx,%ecx
1800861e9:	c1 e1 10             	shl    $0x10,%ecx
1800861ec:	44 0b c0             	or     %eax,%r8d
1800861ef:	8b c2                	mov    %edx,%eax
1800861f1:	c1 ea 08             	shr    $0x8,%edx
1800861f4:	41 23 c7             	and    %r15d,%eax
1800861f7:	41 23 d7             	and    %r15d,%edx
1800861fa:	0b c8                	or     %eax,%ecx
1800861fc:	41 0f b6 41 0f       	movzbl 0xf(%r9),%eax
180086201:	c1 e1 08             	shl    $0x8,%ecx
180086204:	0b ca                	or     %edx,%ecx
180086206:	0b c8                	or     %eax,%ecx
180086208:	44 3b c1             	cmp    %ecx,%r8d
18008620b:	0f 83 c7 06 00 00    	jae    0x1800868d8
180086211:	44 8b 44 24 34       	mov    0x34(%rsp),%r8d
180086216:	33 c9                	xor    %ecx,%ecx
180086218:	41 81 79 0c 44 53 49 	cmpl   $0x47495344,0xc(%r9)
18008621f:	47
180086220:	75 0a                	jne    0x18008622c
180086222:	41 0f 10 41 0c       	movups 0xc(%r9),%xmm0
180086227:	f3 0f 7f 45 e7       	movdqu %xmm0,-0x19(%rbp)
18008622c:	0f b7 46 04          	movzwl 0x4(%rsi),%eax
180086230:	4d 8d 79 0c          	lea    0xc(%r9),%r15
180086234:	41 3b da             	cmp    %r10d,%ebx
180086237:	44 0f 43 d3          	cmovae %ebx,%r10d
18008623b:	45 03 c3             	add    %r11d,%r8d
18008623e:	41 ff c6             	inc    %r14d
180086241:	44 89 44 24 34       	mov    %r8d,0x34(%rsp)
180086246:	41 8b da             	mov    %r10d,%ebx
180086249:	44 3b f0             	cmp    %eax,%r14d
18008624c:	73 0b                	jae    0x180086259
18008624e:	41 ba 00 ff 00 00    	mov    $0xff00,%r10d
180086254:	e9 c9 fe ff ff       	jmp    0x180086122
180086259:	0f 10 06             	movups (%rsi),%xmm0
18008625c:	41 be 01 00 00 00    	mov    $0x1,%r14d
180086262:	0f 11 45 87          	movups %xmm0,-0x79(%rbp)
180086266:	f2 0f 10 4e 10       	movsd  0x10(%rsi),%xmm1
18008626b:	f2 0f 11 4d 97       	movsd  %xmm1,-0x69(%rbp)
180086270:	8b 46 18             	mov    0x18(%rsi),%eax
180086273:	89 45 9f             	mov    %eax,-0x61(%rbp)
180086276:	48 8b 45 ef          	mov    -0x11(%rbp),%rax
18008627a:	48 c1 e8 20          	shr    $0x20,%rax
18008627e:	85 c0                	test   %eax,%eax
180086280:	74 55                	je     0x1800862d7
180086282:	48 8b 45 87          	mov    -0x79(%rbp),%rax
180086286:	44 0f b7 c1          	movzwl %cx,%r8d
18008628a:	48 c1 e8 20          	shr    $0x20,%rax
18008628e:	66 41 2b c6          	sub    %r14w,%ax
180086292:	66 89 4d 8f          	mov    %cx,-0x71(%rbp)
180086296:	44 0f b7 d8          	movzwl %ax,%r11d
18008629a:	41 83 fb 02          	cmp    $0x2,%r11d
18008629e:	72 19                	jb     0x1800862b9
1800862a0:	66 45 03 c6          	add    %r14w,%r8w
1800862a4:	41 8b c6             	mov    %r14d,%eax
1800862a7:	41 0f b7 c8          	movzwl %r8w,%ecx
1800862ab:	ff c1                	inc    %ecx
1800862ad:	d3 e0                	shl    %cl,%eax
1800862af:	41 3b c3             	cmp    %r11d,%eax
1800862b2:	76 ec                	jbe    0x1800862a0
1800862b4:	66 44 89 45 8f       	mov    %r8w,-0x71(%rbp)
1800862b9:	8b 4d 8f             	mov    -0x71(%rbp),%ecx
1800862bc:	45 8b ce             	mov    %r14d,%r9d
1800862bf:	66 41 d3 e1          	shl    %cl,%r9w
1800862c3:	45 0f b7 d3          	movzwl %r11w,%r10d
1800862c7:	66 41 c1 e1 04       	shl    $0x4,%r9w
1800862cc:	66 41 c1 e2 04       	shl    $0x4,%r10w
1800862d1:	66 45 2b d1          	sub    %r9w,%r10w
1800862d5:	eb 14                	jmp    0x1800862eb
1800862d7:	44 0f b7 55 91       	movzwl -0x6f(%rbp),%r10d
1800862dc:	44 0f b7 45 8f       	movzwl -0x71(%rbp),%r8d
1800862e1:	44 0f b7 4d 8d       	movzwl -0x73(%rbp),%r9d
1800862e6:	44 0f b7 5d 8b       	movzwl -0x75(%rbp),%r11d
1800862eb:	8b 4d 87             	mov    -0x79(%rbp),%ecx
1800862ee:	8b d1                	mov    %ecx,%edx
1800862f0:	81 e2 00 00 ff 00    	and    $0xff0000,%edx
1800862f6:	66 41 c1 c3 08       	rol    $0x8,%r11w
1800862fb:	66 41 c1 c1 08       	rol    $0x8,%r9w
180086300:	8b c1                	mov    %ecx,%eax
180086302:	c1 e8 10             	shr    $0x10,%eax
180086305:	0b d0                	or     %eax,%edx
180086307:	66 41 c1 c0 08       	rol    $0x8,%r8w
18008630c:	c1 ea 08             	shr    $0x8,%edx
18008630f:	8b c1                	mov    %ecx,%eax