140a58f42:	48 83 c4 20          	add    $0x20,%rsp
140a58f46:	5f                   	pop    %rdi
140a58f47:	c3                   	ret
140a58f48:	cc                   	int3
140a58f49:	cc                   	int3
140a58f4a:	cc                   	int3
140a58f4b:	cc                   	int3
140a58f4c:	cc                   	int3
140a58f4d:	cc                   	int3
140a58f4e:	cc                   	int3
140a58f4f:	cc                   	int3
140a58f50:	48 3b ca             	cmp    %rdx,%rcx
140a58f53:	74 32                	je     0x140a58f87
140a58f55:	48 89 5c 24 08       	mov    %rbx,0x8(%rsp)
140a58f5a:	57                   	push   %rdi
140a58f5b:	48 83 ec 20          	sub    $0x20,%rsp
140a58f5f:	48 8b fa             	mov    %rdx,%rdi
140a58f62:	48 8b d9             	mov    %rcx,%rbx
140a58f65:	48 8b 4b 08          	mov    0x8(%rbx),%rcx
140a58f69:	48 85 c9             	test   %rcx,%rcx
140a58f6c:	74 06                	je     0x140a58f74
140a58f6e:	e8 5d f1 fa ff       	call   0x140a080d0
140a58f73:	90                   	nop
140a58f74:	48 83 c3 10          	add    $0x10,%rbx
140a58f78:	48 3b df             	cmp    %rdi,%rbx
140a58f7b:	75 e8                	jne    0x140a58f65
140a58f7d:	48 8b 5c 24 30       	mov    0x30(%rsp),%rbx
140a58f82:	48 83 c4 20          	add    $0x20,%rsp
140a58f86:	5f                   	pop    %rdi
140a58f87:	c3                   	ret
140a58f88:	cc                   	int3
140a58f89:	cc                   	int3
140a58f8a:	cc                   	int3
140a58f8b:	cc                   	int3
140a58f8c:	cc                   	int3
140a58f8d:	cc                   	int3
140a58f8e:	cc                   	int3
140a58f8f:	cc                   	int3
140a58f90:	48 3b ca             	cmp    %rdx,%rcx
140a58f93:	74 32                	je     0x140a58fc7
140a58f95:	48 89 5c 24 08       	mov    %rbx,0x8(%rsp)
140a58f9a:	57                   	push   %rdi
140a58f9b:	48 83 ec 20          	sub    $0x20,%rsp
140a58f9f:	48 8b fa             	mov    %rdx,%rdi
140a58fa2:	48 8b d9             	mov    %rcx,%rbx
140a58fa5:	48 8b 4b 10          	mov    0x10(%rbx),%rcx
140a58fa9:	48 85 c9             	test   %rcx,%rcx
140a58fac:	74 06                	je     0x140a58fb4
140a58fae:	e8 7d f1 fa ff       	call   0x140a08130
140a58fb3:	90                   	nop
140a58fb4:	48 83 c3 18          	add    $0x18,%rbx
140a58fb8:	48 3b df             	cmp    %rdi,%rbx
140a58fbb:	75 e8                	jne    0x140a58fa5
140a58fbd:	48 8b 5c 24 30       	mov    0x30(%rsp),%rbx
140a58fc2:	48 83 c4 20          	add    $0x20,%rsp
140a58fc6:	5f                   	pop    %rdi
140a58fc7:	c3                   	ret
140a58fc8:	cc                   	int3
140a58fc9:	cc                   	int3
140a58fca:	cc                   	int3
140a58fcb:	cc                   	int3
140a58fcc:	cc                   	int3
140a58fcd:	cc                   	int3
140a58fce:	cc                   	int3
140a58fcf:	cc                   	int3
140a58fd0:	48 89 54 24 10       	mov    %rdx,0x10(%rsp)
140a58fd5:	48 89 4c 24 08       	mov    %rcx,0x8(%rsp)
140a58fda:	53                   	push   %rbx
140a58fdb:	56                   	push   %rsi
140a58fdc:	57                   	push   %rdi
140a58fdd:	41 54                	push   %r12
140a58fdf:	41 55                	push   %r13
140a58fe1:	41 56                	push   %r14
140a58fe3:	41 57                	push   %r15
140a58fe5:	48 83 ec 40          	sub    $0x40,%rsp
140a58fe9:	4d 8b f8             	mov    %r8,%r15
140a58fec:	4c 8b d2             	mov    %rdx,%r10
140a58fef:	48 8b f1             	mov    %rcx,%rsi
140a58ff2:	4c 8b 01             	mov    (%rcx),%r8
140a58ff5:	4c 8b ca             	mov    %rdx,%r9
140a58ff8:	4d 2b c8             	sub    %r8,%r9
140a58ffb:	49 bb ab aa aa aa aa 	movabs $0x2aaaaaaaaaaaaaab,%r11
140a59002:	aa aa 2a
140a59005:	49 8b c3             	mov    %r11,%rax
140a59008:	49 f7 e9             	imul   %r9
140a5900b:	48 8b da             	mov    %rdx,%rbx
140a5900e:	48 c1 fb 03          	sar    $0x3,%rbx
140a59012:	48 8b c3             	mov    %rbx,%rax
140a59015:	48 c1 e8 3f          	shr    $0x3f,%rax
140a59019:	48 03 d8             	add    %rax,%rbx
140a5901c:	48 8b 49 08          	mov    0x8(%rcx),%rcx
140a59020:	49 2b c8             	sub    %r8,%rcx
140a59023:	49 8b c3             	mov    %r11,%rax
140a59026:	48 f7 e9             	imul   %rcx
140a59029:	48 c1 fa 03          	sar    $0x3,%rdx
140a5902d:	48 8b c2             	mov    %rdx,%rax
140a59030:	48 c1 e8 3f          	shr    $0x3f,%rax
140a59034:	48 03 d0             	add    %rax,%rdx
140a59037:	49 b9 55 55 55 55 55 	movabs $0x555555555555555,%r9
140a5903e:	55 55 05
140a59041:	49 3b d1             	cmp    %r9,%rdx
140a59044:	0f 84 10 02 00 00    	je     0x140a5925a
140a5904a:	4c 8d 62 01          	lea    0x1(%rdx),%r12
140a5904e:	48 8b 4e 10          	mov    0x10(%rsi),%rcx
140a59052:	49 2b c8             	sub    %r8,%rcx
140a59055:	49 8b c3             	mov    %r11,%rax
140a59058:	48 f7 e9             	imul   %rcx
140a5905b:	48 c1 fa 03          	sar    $0x3,%rdx
140a5905f:	48 8b c2             	mov    %rdx,%rax
140a59062:	48 c1 e8 3f          	shr    $0x3f,%rax
140a59066:	48 03 d0             	add    %rax,%rdx
140a59069:	48 8b ca             	mov    %rdx,%rcx
140a5906c:	48 d1 e9             	shr    $1,%rcx
140a5906f:	49 8b c1             	mov    %r9,%rax
140a59072:	48 2b c1             	sub    %rcx,%rax
140a59075:	48 3b d0             	cmp    %rax,%rdx
140a59078:	0f 87 d6 01 00 00    	ja     0x140a59254
140a5907e:	48 8d 04 11          	lea    (%rcx,%rdx,1),%rax
140a59082:	49 8b cc             	mov    %r12,%rcx
140a59085:	49 3b c4             	cmp    %r12,%rax
140a59088:	48 0f 43 c8          	cmovae %rax,%rcx
140a5908c:	49 3b c9             	cmp    %r9,%rcx
140a5908f:	0f 87 bf 01 00 00    	ja     0x140a59254
140a59095:	4c 8d 34 49          	lea    (%rcx,%rcx,2),%r14
140a59099:	49 c1 e6 04          	shl    $0x4,%r14
140a5909d:	48 89 4c 24 28       	mov    %rcx,0x28(%rsp)
140a590a2:	4d 85 f6             	test   %r14,%r14
140a590a5:	75 13                	jne    0x140a590ba
140a590a7:	33 d2                	xor    %edx,%edx
140a590a9:	8b fa                	mov    %edx,%edi
140a590ab:	48 89 94 24 98 00 00 	mov    %rdx,0x98(%rsp)
140a590b2:	00
140a590b3:	48 89 4c 24 28       	mov    %rcx,0x28(%rsp)
140a590b8:	eb 57                	jmp    0x140a59111
140a590ba:	49 81 fe 00 10 00 00 	cmp    $0x1000,%r14
140a590c1:	72 31                	jb     0x140a590f4
140a590c3:	49 8d 4e 27          	lea    0x27(%r14),%rcx
140a590c7:	49 3b ce             	cmp    %r14,%rcx
140a590ca:	0f 86 84 01 00 00    	jbe    0x140a59254
140a590d0:	e8 33 20 3c 00       	call   0x140e1b108
140a590d5:	48 85 c0             	test   %rax,%rax
140a590d8:	0f 84 82 01 00 00    	je     0x140a59260
140a590de:	48 8d 78 27          	lea    0x27(%rax),%rdi
140a590e2:	48 83 e7 e0          	and    $0xffffffffffffffe0,%rdi
140a590e6:	48 89 47 f8          	mov    %rax,-0x8(%rdi)
140a590ea:	48 89 bc 24 98 00 00 	mov    %rdi,0x98(%rsp)
140a590f1:	00
140a590f2:	eb 13                	jmp    0x140a59107
140a590f4:	49 8b ce             	mov    %r14,%rcx
140a590f7:	e8 0c 20 3c 00       	call   0x140e1b108
140a590fc:	48 8b f8             	mov    %rax,%rdi
140a590ff:	48 89 84 24 98 00 00 	mov    %rax,0x98(%rsp)
140a59106:	00
140a59107:	4c 8b 94 24 88 00 00 	mov    0x88(%rsp),%r10
140a5910e:	00
140a5910f:	33 d2                	xor    %edx,%edx
140a59111:	4c 8d 2c 5b          	lea    (%rbx,%rbx,2),%r13
140a59115:	49 c1 e5 04          	shl    $0x4,%r13
140a59119:	4c 03 ef             	add    %rdi,%r13
140a5911c:	49 8d 5d 30          	lea    0x30(%r13),%rbx
140a59120:	48 89 5c 24 30       	mov    %rbx,0x30(%rsp)
140a59125:	0f 57 c0             	xorps  %xmm0,%xmm0
140a59128:	41 0f 11 45 00       	movups %xmm0,0x0(%r13)
140a5912d:	49 89 55 10          	mov    %rdx,0x10(%r13)
140a59131:	49 89 55 18          	mov    %rdx,0x18(%r13)
140a59135:	41 0f 10 07          	movups (%r15),%xmm0
140a59139:	41 0f 11 45 00       	movups %xmm0,0x0(%r13)
140a5913e:	41 0f 10 4f 10       	movups 0x10(%r15),%xmm1
140a59143:	41 0f 11 4d 10       	movups %xmm1,0x10(%r13)
140a59148:	49 89 57 10          	mov    %rdx,0x10(%r15)
140a5914c:	49 c7 47 18 0f 00 00 	movq   $0xf,0x18(%r15)
140a59153:	00
140a59154:	41 c6 07 00          	movb   $0x0,(%r15)
140a59158:	49 8b 47 28          	mov    0x28(%r15),%rax
140a5915c:	48 85 c0             	test   %rax,%rax
140a5915f:	74 04                	je     0x140a59165
140a59161:	49 89 57 28          	mov    %rdx,0x28(%r15)
140a59165:	49 89 45 28          	mov    %rax,0x28(%r13)
140a59169:	4c 89 6c 24 20       	mov    %r13,0x20(%rsp)
140a5916e:	48 8b 56 08          	mov    0x8(%rsi),%rdx
140a59172:	48 8b 0e             	mov    (%rsi),%rcx
140a59175:	4c 3b d2             	cmp    %rdx,%r10
140a59178:	75 05                	jne    0x140a5917f
140a5917a:	48 8b df             	mov    %rdi,%rbx
140a5917d:	eb 1f                	jmp    0x140a5919e
140a5917f:	4c 8b ce             	mov    %rsi,%r9
140a59182:	4c 8b c7             	mov    %rdi,%r8
140a59185:	49 8b d2             	mov    %r10,%rdx
140a59188:	e8 43 39 fb ff       	call   0x140a0cad0
140a5918d:	48 89 7c 24 20       	mov    %rdi,0x20(%rsp)
140a59192:	48 8b 8c 24 88 00 00 	mov    0x88(%rsp),%rcx
140a59199:	00
140a5919a:	48 8b 56 08          	mov    0x8(%rsi),%rdx
140a5919e:	4c 8b ce             	mov    %rsi,%r9
140a591a1:	4c 8b c3             	mov    %rbx,%r8
140a591a4:	e8 27 39 fb ff       	call   0x140a0cad0
140a591a9:	90                   	nop
140a591aa:	48 8b 1e             	mov    (%rsi),%rbx
140a591ad:	48 85 db             	test   %rbx,%rbx
140a591b0:	74 75                	je     0x140a59227
140a591b2:	4c 8b 7e 08          	mov    0x8(%rsi),%r15
140a591b6:	49 3b df             	cmp    %r15,%rbx
140a591b9:	74 16                	je     0x140a591d1
140a591bb:	0f 1f 44 00 00       	nopl   0x0(%rax,%rax,1)
140a591c0:	48 8b cb             	mov    %rbx,%rcx
140a591c3:	e8 a8 39 fb ff       	call   0x140a0cb70
140a591c8:	48 83 c3 30          	add    $0x30,%rbx
140a591cc:	49 3b df             	cmp    %r15,%rbx
140a591cf:	75 ef                	jne    0x140a591c0
140a591d1:	4c 8b 06             	mov    (%rsi),%r8
140a591d4:	48 8b 4e 10          	mov    0x10(%rsi),%rcx
140a591d8:	49 2b c8             	sub    %r8,%rcx
140a591db:	48 b8 ab aa aa aa aa 	movabs $0x2aaaaaaaaaaaaaab,%rax
140a591e2:	aa aa 2a
140a591e5:	48 f7 e9             	imul   %rcx
140a591e8:	48 c1 fa 03          	sar    $0x3,%rdx
140a591ec:	48 8b c2             	mov    %rdx,%rax
140a591ef:	48 c1 e8 3f          	shr    $0x3f,%rax
140a591f3:	48 03 d0             	add    %rax,%rdx
140a591f6:	48 8d 14 52          	lea    (%rdx,%rdx,2),%rdx
140a591fa:	48 c1 e2 04          	shl    $0x4,%rdx
140a591fe:	48 81 fa 00 10 00 00 	cmp    $0x1000,%rdx
140a59205:	72 18                	jb     0x140a5921f
140a59207:	48 83 c2 27          	add    $0x27,%rdx
140a5920b:	49 8b 48 f8          	mov    -0x8(%r8),%rcx
140a5920f:	4c 2b c1             	sub    %rcx,%r8
140a59212:	49 8d 40 f8          	lea    -0x8(%r8),%rax
140a59216:	48 83 f8 1f          	cmp    $0x1f,%rax
140a5921a:	77 44                	ja     0x140a59260
140a5921c:	4c 8b c1             	mov    %rcx,%r8
140a5921f:	49 8b c8             	mov    %r8,%rcx
140a59222:	e8 1d 1f 3c 00       	call   0x140e1b144
140a59227:	48 89 3e             	mov    %rdi,(%rsi)
140a5922a:	4b 8d 0c 64          	lea    (%r12,%r12,2),%rcx
140a5922e:	48 c1 e1 04          	shl    $0x4,%rcx
140a59232:	48 03 cf             	add    %rdi,%rcx
140a59235:	48 89 4e 08          	mov    %rcx,0x8(%rsi)
140a59239:	49 8d 0c 3e          	lea    (%r14,%rdi,1),%rcx
140a5923d:	48 89 4e 10          	mov    %rcx,0x10(%rsi)
140a59241:	49 8b c5             	mov    %r13,%rax
140a59244:	48 83 c4 40          	add    $0x40,%rsp
140a59248:	41 5f                	pop    %r15
140a5924a:	41 5e                	pop    %r14
140a5924c:	41 5d                	pop    %r13
140a5924e:	41 5c                	pop    %r12
140a59250:	5f                   	pop    %rdi
140a59251:	5e                   	pop    %rsi
140a59252:	5b                   	pop    %rbx
140a59253:	c3                   	ret
140a59254:	e8 37 3f 74 ff       	call   0x14019d190
140a59259:	cc                   	int3
140a5925a:	e8 31 43 74 ff       	call   0x14019d590
140a5925f:	cc                   	int3
140a59260:	e8 3f 0f 3d 00       	call   0x140e2a1a4
140a59265:	cc                   	int3
140a59266:	cc                   	int3
140a59267:	cc                   	int3
140a59268:	cc                   	int3
140a59269:	cc                   	int3
140a5926a:	cc                   	int3
140a5926b:	cc                   	int3
140a5926c:	cc                   	int3
140a5926d:	cc                   	int3
140a5926e:	cc                   	int3
140a5926f:	cc                   	int3
140a59270:	48 89 4c 24 08       	mov    %rcx,0x8(%rsp)
140a59275:	53                   	push   %rbx
140a59276:	56                   	push   %rsi
140a59277:	57                   	push   %rdi
140a59278:	41 54                	push   %r12
140a5927a:	41 55                	push   %r13
140a5927c:	41 56                	push   %r14
140a5927e:	41 57                	push   %r15
140a59280:	48 83 ec 40          	sub    $0x40,%rsp
140a59284:	4d 8b f8             	mov    %r8,%r15
140a59287:	48 8b da             	mov    %rdx,%rbx
140a5928a:	4c 8b f1             	mov    %rcx,%r14
140a5928d:	48 8b 11             	mov    (%rcx),%rdx
140a59290:	48 8b f3             	mov    %rbx,%rsi
140a59293:	48 2b f2             	sub    %rdx,%rsi
140a59296:	48 c1 fe 03          	sar    $0x3,%rsi
140a5929a:	48 8b 41 08          	mov    0x8(%rcx),%rax
140a5929e:	48 2b c2             	sub    %rdx,%rax
140a592a1:	48 c1 f8 03          	sar    $0x3,%rax
140a592a5:	49 b9 ff ff ff ff ff 	movabs $0x1fffffffffffffff,%r9
140a592ac:	ff ff 1f
140a592af:	49 3b c1             	cmp    %r9,%rax
140a592b2:	0f 84 f4 01 00 00    	je     0x140a594ac
140a592b8:	4c 8d 40 01          	lea    0x1(%rax),%r8
140a592bc:	4c 89 44 24 28       	mov    %r8,0x28(%rsp)
140a592c1:	48 8b 49 10          	mov    0x10(%rcx),%rcx
140a592c5:	48 2b ca             	sub    %rdx,%rcx
140a592c8:	48 c1 f9 03          	sar    $0x3,%rcx
140a592cc:	48 8b d1             	mov    %rcx,%rdx
140a592cf:	48 d1 ea             	shr    $1,%rdx
140a592d2:	49 8b c1             	mov    %r9,%rax
140a592d5:	48 2b c2             	sub    %rdx,%rax
140a592d8:	48 3b c8             	cmp    %rax,%rcx
140a592db:	0f 87 c5 01 00 00    	ja     0x140a594a6
140a592e1:	48 8d 04 0a          	lea    (%rdx,%rcx,1),%rax
140a592e5:	49 8b c8             	mov    %r8,%rcx
140a592e8:	49 3b c0             	cmp    %r8,%rax
140a592eb:	48 0f 43 c8          	cmovae %rax,%rcx
140a592ef:	49 3b c9             	cmp    %r9,%rcx
140a592f2:	0f 87 ae 01 00 00    	ja     0x140a594a6
140a592f8:	4c 8d 24 cd 00 00 00 	lea    0x0(,%rcx,8),%r12
140a592ff:	00
140a59300:	48 89 4c 24 20       	mov    %rcx,0x20(%rsp)
140a59305:	4d 85 e4             	test   %r12,%r12
140a59308:	75 15                	jne    0x140a5931f
140a5930a:	45 33 c0             	xor    %r8d,%r8d
140a5930d:	41 8b f8             	mov    %r8d,%edi
140a59310:	4c 89 84 24 88 00 00 	mov    %r8,0x88(%rsp)
140a59317:	00
140a59318:	48 89 4c 24 20       	mov    %rcx,0x20(%rsp)
140a5931d:	eb 51                	jmp    0x140a59370
140a5931f:	49 81 fc 00 10 00 00 	cmp    $0x1000,%r12
140a59326:	72 32                	jb     0x140a5935a
140a59328:	49 8d 4c 24 27       	lea    0x27(%r12),%rcx
140a5932d:	49 3b cc             	cmp    %r12,%rcx
140a59330:	0f 86 70 01 00 00    	jbe    0x140a594a6
140a59336:	e8 cd 1d 3c 00       	call   0x140e1b108
140a5933b:	48 85 c0             	test   %rax,%rax
140a5933e:	0f 84 6e 01 00 00    	je     0x140a594b2
140a59344:	48 8d 78 27          	lea    0x27(%rax),%rdi
140a59348:	48 83 e7 e0          	and    $0xffffffffffffffe0,%rdi
140a5934c:	48 89 47 f8          	mov    %rax,-0x8(%rdi)
140a59350:	48 89 bc 24 88 00 00 	mov    %rdi,0x88(%rsp)
140a59357:	00
140a59358:	eb 13                	jmp    0x140a5936d
140a5935a:	49 8b cc             	mov    %r12,%rcx
140a5935d:	e8 a6 1d 3c 00       	call   0x140e1b108
140a59362:	48 8b f8             	mov    %rax,%rdi
140a59365:	48 89 84 24 88 00 00 	mov    %rax,0x88(%rsp)
140a5936c:	00
140a5936d:	45 33 c0             	xor    %r8d,%r8d
140a59370:	4c 8d 14 f5 00 00 00 	lea    0x0(,%rsi,8),%r10
140a59377:	00
140a59378:	4d 8d 2c 3a          	lea    (%r10,%rdi,1),%r13
140a5937c:	49 8d 4d 08          	lea    0x8(%r13),%rcx
140a59380:	48 89 4c 24 30       	mov    %rcx,0x30(%rsp)
140a59385:	49 8b 07             	mov    (%r15),%rax
140a59388:	48 85 c0             	test   %rax,%rax
140a5938b:	74 03                	je     0x140a59390
140a5938d:	4d 89 07             	mov    %r8,(%r15)
140a59390:	49 89 45 00          	mov    %rax,0x0(%r13)
140a59394:	4c 89 ac 24 98 00 00 	mov    %r13,0x98(%rsp)
140a5939b:	00
140a5939c:	4d 8b 4e 08          	mov    0x8(%r14),%r9
140a593a0:	49 8b 06             	mov    (%r14),%rax