140a89dc1:	48 8b 17             	mov    (%rdi),%rdx
140a89dc4:	48 8b d8             	mov    %rax,%rbx
140a89dc7:	e8 44 52 45 00       	call   0x140edf010
140a89dcc:	48 8b 0f             	mov    (%rdi),%rcx
140a89dcf:	48 89 1f             	mov    %rbx,(%rdi)
140a89dd2:	48 8b 5c 24 30       	mov    0x30(%rsp),%rbx
140a89dd7:	48 85 c9             	test   %rcx,%rcx
140a89dda:	74 05                	je     0x140a89de1
140a89ddc:	e8 63 13 39 00       	call   0x140e1b144
140a89de1:	4c 01 36             	add    %r14,(%rsi)
140a89de4:	48 8b 74 24 38       	mov    0x38(%rsp),%rsi
140a89de9:	48 8b 7c 24 40       	mov    0x40(%rsp),%rdi
140a89dee:	48 83 c4 20          	add    $0x20,%rsp
140a89df2:	41 5e                	pop    %r14
140a89df4:	c3                   	ret
140a89df5:	cc                   	int3
140a89df6:	cc                   	int3
140a89df7:	cc                   	int3
140a89df8:	cc                   	int3
140a89df9:	cc                   	int3
140a89dfa:	cc                   	int3
140a89dfb:	cc                   	int3
140a89dfc:	cc                   	int3
140a89dfd:	cc                   	int3
140a89dfe:	cc                   	int3
140a89dff:	cc                   	int3
140a89e00:	48 89 5c 24 08       	mov    %rbx,0x8(%rsp)
140a89e05:	48 89 74 24 10       	mov    %rsi,0x10(%rsp)
140a89e0a:	57                   	push   %rdi
140a89e0b:	48 83 ec 20          	sub    $0x20,%rsp
140a89e0f:	48 8b da             	mov    %rdx,%rbx
140a89e12:	41 0f b6 f0          	movzbl %r8b,%esi
140a89e16:	48 8b 51 08          	mov    0x8(%rcx),%rdx
140a89e1a:	48 8b f9             	mov    %rcx,%rdi
140a89e1d:	48 39 51 10          	cmp    %rdx,0x10(%rcx)
140a89e21:	75 1c                	jne    0x140a89e3f
140a89e23:	48 85 db             	test   %rbx,%rbx
140a89e26:	74 03                	je     0x140a89e2b
140a89e28:	48 2b 19             	sub    (%rcx),%rbx
140a89e2b:	b8 01 00 00 00       	mov    $0x1,%eax
140a89e30:	48 3b d0             	cmp    %rax,%rdx
140a89e33:	48 0f 42 d0          	cmovb  %rax,%rdx
140a89e37:	e8 14 ff ff ff       	call   0x140a89d50
140a89e3c:	48 03 1f             	add    (%rdi),%rbx
140a89e3f:	4c 8b 47 10          	mov    0x10(%rdi),%r8
140a89e43:	48 8d 4b 01          	lea    0x1(%rbx),%rcx
140a89e47:	4c 03 07             	add    (%rdi),%r8
140a89e4a:	48 8b d3             	mov    %rbx,%rdx
140a89e4d:	4c 2b c3             	sub    %rbx,%r8
140a89e50:	e8 bb 51 45 00       	call   0x140edf010
140a89e55:	40 88 33             	mov    %sil,(%rbx)
140a89e58:	48 8b c3             	mov    %rbx,%rax
140a89e5b:	48 8b 5c 24 30       	mov    0x30(%rsp),%rbx
140a89e60:	48 ff 47 10          	incq   0x10(%rdi)
140a89e64:	48 8b 74 24 38       	mov    0x38(%rsp),%rsi
140a89e69:	48 83 c4 20          	add    $0x20,%rsp
140a89e6d:	5f                   	pop    %rdi
140a89e6e:	c3                   	ret
140a89e6f:	cc                   	int3
140a89e70:	48 89 5c 24 08       	mov    %rbx,0x8(%rsp)
140a89e75:	48 89 6c 24 10       	mov    %rbp,0x10(%rsp)
140a89e7a:	48 89 74 24 18       	mov    %rsi,0x18(%rsp)
140a89e7f:	57                   	push   %rdi
140a89e80:	41 54                	push   %r12
140a89e82:	41 55                	push   %r13
140a89e84:	41 56                	push   %r14
140a89e86:	41 57                	push   %r15
140a89e88:	48 83 ec 50          	sub    $0x50,%rsp
140a89e8c:	4d 8b e1             	mov    %r9,%r12
140a89e8f:	49 8b d8             	mov    %r8,%rbx
140a89e92:	44 0f b6 fa          	movzbl %dl,%r15d
140a89e96:	48 8b f1             	mov    %rcx,%rsi
140a89e99:	45 33 ed             	xor    %r13d,%r13d
140a89e9c:	b9 58 00 00 00       	mov    $0x58,%ecx
140a89ea1:	e8 86 88 3a 00       	call   0x140e3272c
140a89ea6:	48 85 c0             	test   %rax,%rax
140a89ea9:	0f 84 ce 00 00 00    	je     0x140a89f7d
140a89eaf:	48 8d 15 6e 8d 92 00 	lea    0x928d6e(%rip),%rdx        # 0x1413b2c24
140a89eb6:	48 8b c8             	mov    %rax,%rcx
140a89eb9:	e8 02 cf f7 ff       	call   0x140a06dc0
140a89ebe:	4c 8b f0             	mov    %rax,%r14
140a89ec1:	48 89 44 24 30       	mov    %rax,0x30(%rsp)
140a89ec6:	0f 57 c0             	xorps  %xmm0,%xmm0
140a89ec9:	0f 11 40 18          	movups %xmm0,0x18(%rax)
140a89ecd:	4c 89 68 28          	mov    %r13,0x28(%rax)
140a89ed1:	4c 89 68 30          	mov    %r13,0x30(%rax)
140a89ed5:	49 c7 c0 ff ff ff ff 	mov    $0xffffffffffffffff,%r8
140a89edc:	0f 1f 40 00          	nopl   0x0(%rax)
140a89ee0:	49 ff c0             	inc    %r8
140a89ee3:	42 80 3c 03 00       	cmpb   $0x0,(%rbx,%r8,1)
140a89ee8:	75 f6                	jne    0x140a89ee0
140a89eea:	48 8b d3             	mov    %rbx,%rdx
140a89eed:	48 8d 48 18          	lea    0x18(%rax),%rcx
140a89ef1:	e8 0a cf 70 ff       	call   0x140196e00
140a89ef6:	49 ff 46 10          	incq   0x10(%r14)
140a89efa:	0f 57 c0             	xorps  %xmm0,%xmm0
140a89efd:	41 0f 11 46 38       	movups %xmm0,0x38(%r14)
140a89f02:	4d 89 6e 48          	mov    %r13,0x48(%r14)
140a89f06:	4d 89 6e 50          	mov    %r13,0x50(%r14)
140a89f0a:	41 0f 10 04 24       	movups (%r12),%xmm0
140a89f0f:	41 0f 11 46 38       	movups %xmm0,0x38(%r14)
140a89f14:	41 0f 10 4c 24 10    	movups 0x10(%r12),%xmm1
140a89f1a:	41 0f 11 4e 48       	movups %xmm1,0x48(%r14)
140a89f1f:	4d 89 6c 24 10       	mov    %r13,0x10(%r12)
140a89f24:	49 c7 44 24 18 0f 00 	movq   $0xf,0x18(%r12)
140a89f2b:	00 00
140a89f2d:	41 c6 04 24 00       	movb   $0x0,(%r12)
140a89f32:	49 ff 46 10          	incq   0x10(%r14)
140a89f36:	4c 89 74 24 30       	mov    %r14,0x30(%rsp)
140a89f3b:	48 8d 54 24 28       	lea    0x28(%rsp),%rdx
140a89f40:	48 8d 4c 24 38       	lea    0x38(%rsp),%rcx
140a89f45:	e8 96 51 f3 ff       	call   0x1409bf0e0
140a89f4a:	90                   	nop
140a89f4b:	4c 8d 44 24 38       	lea    0x38(%rsp),%r8
140a89f50:	41 0f b6 d7          	movzbl %r15b,%edx
140a89f54:	48 8b ce             	mov    %rsi,%rcx
140a89f57:	e8 04 1a f4 ff       	call   0x1409cb960
140a89f5c:	48 8b c6             	mov    %rsi,%rax
140a89f5f:	4c 8d 5c 24 50       	lea    0x50(%rsp),%r11
140a89f64:	49 8b 5b 30          	mov    0x30(%r11),%rbx
140a89f68:	49 8b 6b 38          	mov    0x38(%r11),%rbp
140a89f6c:	49 8b 73 40          	mov    0x40(%r11),%rsi
140a89f70:	49 8b e3             	mov    %r11,%rsp
140a89f73:	41 5f                	pop    %r15
140a89f75:	41 5e                	pop    %r14
140a89f77:	41 5d                	pop    %r13
140a89f79:	41 5c                	pop    %r12
140a89f7b:	5f                   	pop    %rdi
140a89f7c:	c3                   	ret
140a89f7d:	48 8d 0d 6c fe 5e 00 	lea    0x5efe6c(%rip),%rcx        # 0x141079df0
140a89f84:	e8 77 cf 70 ff       	call   0x140196f00
140a89f89:	48 8d 0d 60 fe 5e 00 	lea    0x5efe60(%rip),%rcx        # 0x141079df0
140a89f90:	e8 8b 4e f3 ff       	call   0x1409bee20
140a89f95:	cc                   	int3
140a89f96:	cc                   	int3
140a89f97:	cc                   	int3
140a89f98:	cc                   	int3
140a89f99:	cc                   	int3
140a89f9a:	cc                   	int3
140a89f9b:	cc                   	int3
140a89f9c:	cc                   	int3
140a89f9d:	cc                   	int3
140a89f9e:	cc                   	int3
140a89f9f:	cc                   	int3
140a89fa0:	48 3b ca             	cmp    %rdx,%rcx
140a89fa3:	74 31                	je     0x140a89fd6
140a89fa5:	48 89 5c 24 08       	mov    %rbx,0x8(%rsp)
140a89faa:	57                   	push   %rdi
140a89fab:	48 83 ec 20          	sub    $0x20,%rsp
140a89faf:	48 8b fa             	mov    %rdx,%rdi
140a89fb2:	48 8b d9             	mov    %rcx,%rbx
140a89fb5:	48 8b 4b 10          	mov    0x10(%rbx),%rcx
140a89fb9:	48 85 c9             	test   %rcx,%rcx
140a89fbc:	74 05                	je     0x140a89fc3
140a89fbe:	e8 8d fe f7 ff       	call   0x140a09e50
140a89fc3:	48 83 c3 18          	add    $0x18,%rbx
140a89fc7:	48 3b df             	cmp    %rdi,%rbx
140a89fca:	75 e9                	jne    0x140a89fb5
140a89fcc:	48 8b 5c 24 30       	mov    0x30(%rsp),%rbx
140a89fd1:	48 83 c4 20          	add    $0x20,%rsp
140a89fd5:	5f                   	pop    %rdi
140a89fd6:	c3                   	ret
140a89fd7:	cc                   	int3
140a89fd8:	cc                   	int3
140a89fd9:	cc                   	int3
140a89fda:	cc                   	int3
140a89fdb:	cc                   	int3
140a89fdc:	cc                   	int3
140a89fdd:	cc                   	int3
140a89fde:	cc                   	int3
140a89fdf:	cc                   	int3
140a89fe0:	48 3b ca             	cmp    %rdx,%rcx
140a89fe3:	74 30                	je     0x140a8a015
140a89fe5:	48 89 5c 24 08       	mov    %rbx,0x8(%rsp)
140a89fea:	57                   	push   %rdi
140a89feb:	48 83 ec 20          	sub    $0x20,%rsp
140a89fef:	48 8b fa             	mov    %rdx,%rdi
140a89ff2:	48 8b d9             	mov    %rcx,%rbx
140a89ff5:	48 8b 0b             	mov    (%rbx),%rcx
140a89ff8:	48 85 c9             	test   %rcx,%rcx
140a89ffb:	74 05                	je     0x140a8a002
140a89ffd:	e8 4e fe f7 ff       	call   0x140a09e50
140a8a002:	48 83 c3 08          	add    $0x8,%rbx
140a8a006:	48 3b df             	cmp    %rdi,%rbx
140a8a009:	75 ea                	jne    0x140a89ff5
140a8a00b:	48 8b 5c 24 30       	mov    0x30(%rsp),%rbx
140a8a010:	48 83 c4 20          	add    $0x20,%rsp
140a8a014:	5f                   	pop    %rdi
140a8a015:	c3                   	ret
140a8a016:	cc                   	int3
140a8a017:	cc                   	int3
140a8a018:	cc                   	int3
140a8a019:	cc                   	int3
140a8a01a:	cc                   	int3
140a8a01b:	cc                   	int3
140a8a01c:	cc                   	int3
140a8a01d:	cc                   	int3
140a8a01e:	cc                   	int3
140a8a01f:	cc                   	int3
140a8a020:	48 89 5c 24 18       	mov    %rbx,0x18(%rsp)
140a8a025:	48 89 74 24 20       	mov    %rsi,0x20(%rsp)
140a8a02a:	48 89 4c 24 08       	mov    %rcx,0x8(%rsp)
140a8a02f:	57                   	push   %rdi
140a8a030:	41 54                	push   %r12
140a8a032:	41 55                	push   %r13
140a8a034:	41 56                	push   %r14
140a8a036:	41 57                	push   %r15
140a8a038:	48 83 ec 50          	sub    $0x50,%rsp
140a8a03c:	4d 8b f9             	mov    %r9,%r15
140a8a03f:	4d 8b e0             	mov    %r8,%r12
140a8a042:	48 8b da             	mov    %rdx,%rbx
140a8a045:	4c 8b f1             	mov    %rcx,%r14
140a8a048:	4c 8b 09             	mov    (%rcx),%r9
140a8a04b:	4c 8b d2             	mov    %rdx,%r10
140a8a04e:	4d 2b d1             	sub    %r9,%r10
140a8a051:	49 bb ab aa aa aa aa 	movabs $0x2aaaaaaaaaaaaaab,%r11
140a8a058:	aa aa 2a
140a8a05b:	49 8b c3             	mov    %r11,%rax
140a8a05e:	49 f7 ea             	imul   %r10
140a8a061:	48 8b f2             	mov    %rdx,%rsi
140a8a064:	48 c1 fe 02          	sar    $0x2,%rsi
140a8a068:	48 8b c6             	mov    %rsi,%rax
140a8a06b:	48 c1 e8 3f          	shr    $0x3f,%rax
140a8a06f:	48 03 f0             	add    %rax,%rsi
140a8a072:	48 8b 49 08          	mov    0x8(%rcx),%rcx
140a8a076:	49 2b c9             	sub    %r9,%rcx
140a8a079:	49 8b c3             	mov    %r11,%rax
140a8a07c:	48 f7 e9             	imul   %rcx
140a8a07f:	48 c1 fa 02          	sar    $0x2,%rdx
140a8a083:	48 8b c2             	mov    %rdx,%rax
140a8a086:	48 c1 e8 3f          	shr    $0x3f,%rax
140a8a08a:	48 03 d0             	add    %rax,%rdx
140a8a08d:	49 ba aa aa aa aa aa 	movabs $0xaaaaaaaaaaaaaaa,%r10
140a8a094:	aa aa 0a
140a8a097:	49 3b d2             	cmp    %r10,%rdx
140a8a09a:	0f 84 af 02 00 00    	je     0x140a8a34f
140a8a0a0:	4c 8d 42 01          	lea    0x1(%rdx),%r8
140a8a0a4:	4c 89 44 24 30       	mov    %r8,0x30(%rsp)
140a8a0a9:	49 8b 4e 10          	mov    0x10(%r14),%rcx
140a8a0ad:	49 2b c9             	sub    %r9,%rcx
140a8a0b0:	49 8b c3             	mov    %r11,%rax
140a8a0b3:	48 f7 e9             	imul   %rcx
140a8a0b6:	48 c1 fa 02          	sar    $0x2,%rdx
140a8a0ba:	48 8b c2             	mov    %rdx,%rax
140a8a0bd:	48 c1 e8 3f          	shr    $0x3f,%rax
140a8a0c1:	48 03 d0             	add    %rax,%rdx
140a8a0c4:	48 8b ca             	mov    %rdx,%rcx
140a8a0c7:	48 d1 e9             	shr    $1,%rcx
140a8a0ca:	49 8b c2             	mov    %r10,%rax
140a8a0cd:	48 2b c1             	sub    %rcx,%rax
140a8a0d0:	48 3b d0             	cmp    %rax,%rdx
140a8a0d3:	0f 87 70 02 00 00    	ja     0x140a8a349
140a8a0d9:	48 8d 04 11          	lea    (%rcx,%rdx,1),%rax
140a8a0dd:	49 8b c8             	mov    %r8,%rcx
140a8a0e0:	49 3b c0             	cmp    %r8,%rax
140a8a0e3:	48 0f 43 c8          	cmovae %rax,%rcx
140a8a0e7:	49 3b ca             	cmp    %r10,%rcx
140a8a0ea:	0f 87 59 02 00 00    	ja     0x140a8a349
140a8a0f0:	48 8d 04 49          	lea    (%rcx,%rcx,2),%rax
140a8a0f4:	4c 8d 2c c5 00 00 00 	lea    0x0(,%rax,8),%r13
140a8a0fb:	00
140a8a0fc:	48 89 4c 24 28       	mov    %rcx,0x28(%rsp)
140a8a101:	4d 85 ed             	test   %r13,%r13
140a8a104:	75 15                	jne    0x140a8a11b
140a8a106:	45 33 c9             	xor    %r9d,%r9d
140a8a109:	41 8b f9             	mov    %r9d,%edi
140a8a10c:	4c 89 8c 24 88 00 00 	mov    %r9,0x88(%rsp)
140a8a113:	00
140a8a114:	48 89 4c 24 28       	mov    %rcx,0x28(%rsp)
140a8a119:	eb 50                	jmp    0x140a8a16b
140a8a11b:	49 81 fd 00 10 00 00 	cmp    $0x1000,%r13
140a8a122:	72 31                	jb     0x140a8a155
140a8a124:	49 8d 4d 27          	lea    0x27(%r13),%rcx
140a8a128:	49 3b cd             	cmp    %r13,%rcx
140a8a12b:	0f 86 18 02 00 00    	jbe    0x140a8a349
140a8a131:	e8 d2 0f 39 00       	call   0x140e1b108
140a8a136:	48 85 c0             	test   %rax,%rax
140a8a139:	0f 84 16 02 00 00    	je     0x140a8a355
140a8a13f:	48 8d 78 27          	lea    0x27(%rax),%rdi
140a8a143:	48 83 e7 e0          	and    $0xffffffffffffffe0,%rdi
140a8a147:	48 89 47 f8          	mov    %rax,-0x8(%rdi)
140a8a14b:	48 89 bc 24 88 00 00 	mov    %rdi,0x88(%rsp)
140a8a152:	00
140a8a153:	eb 13                	jmp    0x140a8a168
140a8a155:	49 8b cd             	mov    %r13,%rcx
140a8a158:	e8 ab 0f 39 00       	call   0x140e1b108
140a8a15d:	48 8b f8             	mov    %rax,%rdi
140a8a160:	48 89 84 24 88 00 00 	mov    %rax,0x88(%rsp)
140a8a167:	00
140a8a168:	45 33 c9             	xor    %r9d,%r9d
140a8a16b:	48 8d 04 76          	lea    (%rsi,%rsi,2),%rax
140a8a16f:	4c 8d 1c c5 00 00 00 	lea    0x0(,%rax,8),%r11
140a8a176:	00
140a8a177:	49 8d 0c 3b          	lea    (%r11,%rdi,1),%rcx
140a8a17b:	48 89 4c 24 38       	mov    %rcx,0x38(%rsp)
140a8a180:	48 8d 41 18          	lea    0x18(%rcx),%rax
140a8a184:	48 89 44 24 40       	mov    %rax,0x40(%rsp)
140a8a189:	49 8b 04 24          	mov    (%r12),%rax
140a8a18d:	48 89 01             	mov    %rax,(%rcx)
140a8a190:	41 0f b7 07          	movzwl (%r15),%eax
140a8a194:	66 89 41 08          	mov    %ax,0x8(%rcx)
140a8a198:	49 8b 47 08          	mov    0x8(%r15),%rax
140a8a19c:	48 85 c0             	test   %rax,%rax
140a8a19f:	74 04                	je     0x140a8a1a5
140a8a1a1:	4d 89 4f 08          	mov    %r9,0x8(%r15)
140a8a1a5:	48 89 41 10          	mov    %rax,0x10(%rcx)
140a8a1a9:	48 89 4c 24 20       	mov    %rcx,0x20(%rsp)
140a8a1ae:	4d 8b 56 08          	mov    0x8(%r14),%r10
140a8a1b2:	49 8b 0e             	mov    (%r14),%rcx
140a8a1b5:	49 3b da             	cmp    %r10,%rbx
140a8a1b8:	75 4a                	jne    0x140a8a204
140a8a1ba:	49 3b ca             	cmp    %r10,%rcx
140a8a1bd:	0f 84 cd 00 00 00    	je     0x140a8a290
140a8a1c3:	4c 8d 47 08          	lea    0x8(%rdi),%r8
140a8a1c7:	48 8d 51 10          	lea    0x10(%rcx),%rdx
140a8a1cb:	0f 1f 44 00 00       	nopl   0x0(%rax,%rax,1)
140a8a1d0:	48 8b 01             	mov    (%rcx),%rax
140a8a1d3:	49 89 40 f8          	mov    %rax,-0x8(%r8)
140a8a1d7:	0f b7 42 f8          	movzwl -0x8(%rdx),%eax
140a8a1db:	66 41 89 00          	mov    %ax,(%r8)
140a8a1df:	48 8b 02             	mov    (%rdx),%rax
140a8a1e2:	48 85 c0             	test   %rax,%rax
140a8a1e5:	74 03                	je     0x140a8a1ea
140a8a1e7:	4c 89 0a             	mov    %r9,(%rdx)
140a8a1ea:	49 89 40 08          	mov    %rax,0x8(%r8)
140a8a1ee:	49 83 c0 18          	add    $0x18,%r8
140a8a1f2:	48 83 c1 18          	add    $0x18,%rcx
140a8a1f6:	48 83 c2 18          	add    $0x18,%rdx
140a8a1fa:	49 3b ca             	cmp    %r10,%rcx
140a8a1fd:	75 d1                	jne    0x140a8a1d0
140a8a1ff:	e9 8c 00 00 00       	jmp    0x140a8a290
140a8a204:	48 3b cb             	cmp    %rbx,%rcx
140a8a207:	74 37                	je     0x140a8a240
140a8a209:	4c 8d 47 08          	lea    0x8(%rdi),%r8
140a8a20d:	48 8d 51 10          	lea    0x10(%rcx),%rdx
140a8a211:	48 8b 01             	mov    (%rcx),%rax
140a8a214:	49 89 40 f8          	mov    %rax,-0x8(%r8)
140a8a218:	0f b7 42 f8          	movzwl -0x8(%rdx),%eax
140a8a21c:	66 41 89 00          	mov    %ax,(%r8)
140a8a220:	48 8b 02             	mov    (%rdx),%rax
140a8a223:	48 85 c0             	test   %rax,%rax
140a8a226:	74 03                	je     0x140a8a22b
140a8a228:	4c 89 0a             	mov    %r9,(%rdx)
140a8a22b:	49 89 40 08          	mov    %rax,0x8(%r8)
140a8a22f:	49 83 c0 18          	add    $0x18,%r8
140a8a233:	48 83 c1 18          	add    $0x18,%rcx
140a8a237:	48 83 c2 18          	add    $0x18,%rdx
140a8a23b:	48 3b cb             	cmp    %rbx,%rcx
140a8a23e:	75 d1                	jne    0x140a8a211
140a8a240:	48 89 7c 24 20       	mov    %rdi,0x20(%rsp)