180085c3e:	66 45 39 64 41 fe    	cmp    %r12w,-0x2(%r9,%rax,2)
180085c44:	44 0f 45 f9          	cmovne %ecx,%r15d
180085c48:	4d 85 c9             	test   %r9,%r9
180085c4b:	75 0a                	jne    0x180085c57
180085c4d:	bb f2 00 00 c0       	mov    $0xc00000f2,%ebx
180085c52:	e9 a7 00 00 00       	jmp    0x180085cfe
180085c57:	4c 8d 45 40          	lea    0x40(%rbp),%r8
180085c5b:	44 89 7c 24 20       	mov    %r15d,0x20(%rsp)
180085c60:	33 d2                	xor    %edx,%edx
180085c62:	33 c9                	xor    %ecx,%ecx
180085c64:	e8 f3 3f 09 00       	call   0x180119c5c
180085c69:	8b d8                	mov    %eax,%ebx
180085c6b:	85 c0                	test   %eax,%eax
180085c6d:	0f 88 8b 00 00 00    	js     0x180085cfe
180085c73:	8b 4d 40             	mov    0x40(%rbp),%ecx
180085c76:	e8 d5 41 01 00       	call   0x180099e50
180085c7b:	48 8b f8             	mov    %rax,%rdi
180085c7e:	48 85 c0             	test   %rax,%rax
180085c81:	75 07                	jne    0x180085c8a
180085c83:	bb 17 00 00 c0       	mov    $0xc0000017,%ebx
180085c88:	eb 74                	jmp    0x180085cfe
180085c8a:	4c 8b 4e 08          	mov    0x8(%rsi),%r9
180085c8e:	4d 85 c9             	test   %r9,%r9
180085c91:	75 07                	jne    0x180085c9a
180085c93:	bb f2 00 00 c0       	mov    $0xc00000f2,%ebx
180085c98:	eb 5c                	jmp    0x180085cf6
180085c9a:	8b 55 40             	mov    0x40(%rbp),%edx
180085c9d:	4c 8d 45 40          	lea    0x40(%rbp),%r8
180085ca1:	48 8b cf             	mov    %rdi,%rcx
180085ca4:	44 89 7c 24 20       	mov    %r15d,0x20(%rsp)
180085ca9:	e8 ae 3f 09 00       	call   0x180119c5c
180085cae:	8b d8                	mov    %eax,%ebx
180085cb0:	85 c0                	test   %eax,%eax
180085cb2:	78 42                	js     0x180085cf6
180085cb4:	8b 45 40             	mov    0x40(%rbp),%eax
180085cb7:	4c 8d 4d e0          	lea    -0x20(%rbp),%r9
180085cbb:	89 45 d0             	mov    %eax,-0x30(%rbp)
180085cbe:	4c 8d 45 d0          	lea    -0x30(%rbp),%r8
180085cc2:	48 8d 45 40          	lea    0x40(%rbp),%rax
180085cc6:	48 89 7d d8          	mov    %rdi,-0x28(%rbp)
180085cca:	ba 01 00 00 00       	mov    $0x1,%edx
180085ccf:	48 89 44 24 20       	mov    %rax,0x20(%rsp)
180085cd4:	b9 0c 80 00 00       	mov    $0x800c,%ecx
180085cd9:	e8 1a 90 f9 ff       	call   0x18001ecf8
180085cde:	8b d8                	mov    %eax,%ebx
180085ce0:	85 c0                	test   %eax,%eax
180085ce2:	78 12                	js     0x180085cf6
180085ce4:	0f 10 45 e0          	movups -0x20(%rbp),%xmm0
180085ce8:	0f 10 4d f0          	movups -0x10(%rbp),%xmm1
180085cec:	41 0f 11 46 48       	movups %xmm0,0x48(%r14)
180085cf1:	41 0f 11 4e 58       	movups %xmm1,0x58(%r14)
180085cf6:	48 8b cf             	mov    %rdi,%rcx
180085cf9:	e8 fe 42 01 00       	call   0x180099ffc
180085cfe:	4c 8d 5c 24 60       	lea    0x60(%rsp),%r11
180085d03:	8b c3                	mov    %ebx,%eax
180085d05:	49 8b 5b 30          	mov    0x30(%r11),%rbx
180085d09:	49 8b 73 38          	mov    0x38(%r11),%rsi
180085d0d:	49 8b e3             	mov    %r11,%rsp
180085d10:	41 5f                	pop    %r15
180085d12:	41 5e                	pop    %r14
180085d14:	41 5c                	pop    %r12
180085d16:	5f                   	pop    %rdi
180085d17:	5d                   	pop    %rbp
180085d18:	c3                   	ret
180085d19:	cc                   	int3
180085d1a:	cc                   	int3
180085d1b:	cc                   	int3
180085d1c:	48 8b 05 dd 6b 0e 00 	mov    0xe6bdd(%rip),%rax        # 0x18016c900
180085d23:	48 89 01             	mov    %rax,(%rcx)
180085d26:	c3                   	ret
180085d27:	cc                   	int3
180085d28:	8a 05 f4 f6 10 00    	mov    0x10f6f4(%rip),%al        # 0x180195422
180085d2e:	c3                   	ret
180085d2f:	cc                   	int3
180085d30:	c6 05 b9 db 11 00 01 	movb   $0x1,0x11dbb9(%rip)        # 0x1801a38f0
180085d37:	c3                   	ret
180085d38:	cc                   	int3
180085d39:	cc                   	int3
180085d3a:	cc                   	int3
180085d3b:	cc                   	int3
180085d3c:	48 89 5c 24 08       	mov    %rbx,0x8(%rsp)
180085d41:	55                   	push   %rbp
180085d42:	56                   	push   %rsi
180085d43:	57                   	push   %rdi
180085d44:	48 8b ec             	mov    %rsp,%rbp
180085d47:	48 83 ec 60          	sub    $0x60,%rsp
180085d4b:	83 4d 30 ff          	orl    $0xffffffff,0x30(%rbp)
180085d4f:	4c 8d 4d 30          	lea    0x30(%rbp),%r9
180085d53:	33 ff                	xor    %edi,%edi
180085d55:	48 89 7d 38          	mov    %rdi,0x38(%rbp)
180085d59:	44 8d 47 01          	lea    0x1(%rdi),%r8d
180085d5d:	e8 ba 26 fe ff       	call   0x18006841c
180085d62:	85 c0                	test   %eax,%eax
180085d64:	79 07                	jns    0x180085d6d
180085d66:	33 db                	xor    %ebx,%ebx
180085d68:	e9 d3 00 00 00       	jmp    0x180085e40
180085d6d:	8b 4d 30             	mov    0x30(%rbp),%ecx
180085d70:	48 8d 55 e0          	lea    -0x20(%rbp),%rdx
180085d74:	e8 9f 2f fe ff       	call   0x180068d18
180085d79:	8b d8                	mov    %eax,%ebx
180085d7b:	85 c0                	test   %eax,%eax
180085d7d:	0f 88 bd 00 00 00    	js     0x180085e40
180085d83:	48 8b 75 e0          	mov    -0x20(%rbp),%rsi
180085d87:	48 85 f6             	test   %rsi,%rsi
180085d8a:	75 0a                	jne    0x180085d96
180085d8c:	bb 28 04 00 c0       	mov    $0xc0000428,%ebx
180085d91:	e9 aa 00 00 00       	jmp    0x180085e40
180085d96:	21 7c 24 28          	and    %edi,0x28(%rsp)
180085d9a:	48 8d 4d 38          	lea    0x38(%rbp),%rcx
180085d9e:	21 7c 24 20          	and    %edi,0x20(%rsp)
180085da2:	45 33 c9             	xor    %r9d,%r9d
180085da5:	8b d6                	mov    %esi,%edx
180085da7:	41 b8 0a 00 00 d0    	mov    $0xd000000a,%r8d
180085dad:	e8 8e 9e ff ff       	call   0x18007fc40
180085db2:	8b d8                	mov    %eax,%ebx
180085db4:	85 c0                	test   %eax,%eax
180085db6:	0f 88 80 00 00 00    	js     0x180085e3c
180085dbc:	21 7c 24 28          	and    %edi,0x28(%rsp)
180085dc0:	45 33 c0             	xor    %r8d,%r8d
180085dc3:	48 21 7c 24 20       	and    %rdi,0x20(%rsp)
180085dc8:	8b d6                	mov    %esi,%edx
180085dca:	48 8b 7d 38          	mov    0x38(%rbp),%rdi
180085dce:	8b 4d 30             	mov    0x30(%rbp),%ecx
180085dd1:	4c 8b cf             	mov    %rdi,%r9
180085dd4:	e8 77 31 fe ff       	call   0x180068f50
180085dd9:	8b d8                	mov    %eax,%ebx
180085ddb:	85 c0                	test   %eax,%eax
180085ddd:	78 61                	js     0x180085e40
180085ddf:	48 8d 45 d0          	lea    -0x30(%rbp),%rax
180085de3:	44 8b c6             	mov    %esi,%r8d
180085de6:	48 89 44 24 28       	mov    %rax,0x28(%rsp)
180085deb:	4c 8d 4d d8          	lea    -0x28(%rbp),%r9
180085def:	48 8d 45 38          	lea    0x38(%rbp),%rax
180085df3:	48 8b d7             	mov    %rdi,%rdx
180085df6:	b1 01                	mov    $0x1,%cl
180085df8:	48 89 44 24 20       	mov    %rax,0x20(%rsp)
180085dfd:	e8 26 a5 ff ff       	call   0x180080328
180085e02:	8b d8                	mov    %eax,%ebx
180085e04:	85 c0                	test   %eax,%eax
180085e06:	78 18                	js     0x180085e20
180085e08:	48 8b 45 d0          	mov    -0x30(%rbp),%rax
180085e0c:	48 3b 05 1d ba 0c 00 	cmp    0xcba1d(%rip),%rax        # 0x180151830
180085e13:	7d 07                	jge    0x180085e1c
180085e15:	bb 01 00 43 c0       	mov    $0xc0430001,%ebx
180085e1a:	eb 24                	jmp    0x180085e40
180085e1c:	48 89 45 d0          	mov    %rax,-0x30(%rbp)
180085e20:	85 db                	test   %ebx,%ebx
180085e22:	78 1c                	js     0x180085e40
180085e24:	8b 55 38             	mov    0x38(%rbp),%edx
180085e27:	4c 8d 45 d0          	lea    -0x30(%rbp),%r8
180085e2b:	48 8b 4d d8          	mov    -0x28(%rbp),%rcx
180085e2f:	41 b9 02 00 04 00    	mov    $0x40002,%r9d
180085e35:	e8 de 7a 00 00       	call   0x18008d918
180085e3a:	eb 04                	jmp    0x180085e40
180085e3c:	48 8b 7d 38          	mov    0x38(%rbp),%rdi
180085e40:	83 7d 30 ff          	cmpl   $0xffffffff,0x30(%rbp)
180085e44:	74 08                	je     0x180085e4e
180085e46:	8b 4d 30             	mov    0x30(%rbp),%ecx
180085e49:	e8 b2 26 fe ff       	call   0x180068500
180085e4e:	48 85 ff             	test   %rdi,%rdi
180085e51:	74 08                	je     0x180085e5b
180085e53:	48 8b cf             	mov    %rdi,%rcx
180085e56:	e8 d5 1c 01 00       	call   0x180097b30
180085e5b:	8b c3                	mov    %ebx,%eax
180085e5d:	48 8b 9c 24 80 00 00 	mov    0x80(%rsp),%rbx
180085e64:	00
180085e65:	48 83 c4 60          	add    $0x60,%rsp
180085e69:	5f                   	pop    %rdi
180085e6a:	5e                   	pop    %rsi
180085e6b:	5d                   	pop    %rbp
180085e6c:	c3                   	ret
180085e6d:	cc                   	int3
180085e6e:	cc                   	int3
180085e6f:	cc                   	int3
180085e70:	4d 8b c8             	mov    %r8,%r9
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