140386fa0:	48 85 c9             	test   %rcx,%rcx
140386fa3:	75 11                	jne    0x140386fb6
140386fa5:	33 d2                	xor    %edx,%edx
140386fa7:	44 8b d2             	mov    %edx,%r10d
140386faa:	48 89 54 24 78       	mov    %rdx,0x78(%rsp)
140386faf:	48 89 7c 24 20       	mov    %rdi,0x20(%rsp)
140386fb4:	eb 49                	jmp    0x140386fff
140386fb6:	48 81 f9 00 10 00 00 	cmp    $0x1000,%rcx
140386fbd:	72 31                	jb     0x140386ff0
140386fbf:	48 8d 41 27          	lea    0x27(%rcx),%rax
140386fc3:	48 3b c1             	cmp    %rcx,%rax
140386fc6:	0f 86 fc 00 00 00    	jbe    0x1403870c8
140386fcc:	48 8b c8             	mov    %rax,%rcx
140386fcf:	e8 34 41 a9 00       	call   0x140e1b108
140386fd4:	48 85 c0             	test   %rax,%rax
140386fd7:	0f 84 f7 00 00 00    	je     0x1403870d4
140386fdd:	4c 8d 50 27          	lea    0x27(%rax),%r10
140386fe1:	49 83 e2 e0          	and    $0xffffffffffffffe0,%r10
140386fe5:	49 89 42 f8          	mov    %rax,-0x8(%r10)
140386fe9:	4c 89 54 24 78       	mov    %r10,0x78(%rsp)
140386fee:	eb 0d                	jmp    0x140386ffd
140386ff0:	e8 13 41 a9 00       	call   0x140e1b108
140386ff5:	4c 8b d0             	mov    %rax,%r10
140386ff8:	48 89 44 24 78       	mov    %rax,0x78(%rsp)
140386ffd:	33 d2                	xor    %edx,%edx
140386fff:	4e 8d 3c f5 00 00 00 	lea    0x0(,%r14,8),%r15
140387006:	00
140387007:	4f 8d 34 17          	lea    (%r15,%r10,1),%r14
14038700b:	49 8d 4e 08          	lea    0x8(%r14),%rcx
14038700f:	48 89 4c 24 28       	mov    %rcx,0x28(%rsp)
140387014:	49 8b 04 24          	mov    (%r12),%rax
140387018:	49 89 14 24          	mov    %rdx,(%r12)
14038701c:	49 89 06             	mov    %rax,(%r14)
14038701f:	4c 89 b4 24 88 00 00 	mov    %r14,0x88(%rsp)
140387026:	00
140387027:	4c 8b 4e 08          	mov    0x8(%rsi),%r9
14038702b:	48 8b 06             	mov    (%rsi),%rax
14038702e:	4d 8b c2             	mov    %r10,%r8
140387031:	49 3b d9             	cmp    %r9,%rbx
140387034:	75 22                	jne    0x140387058
140387036:	49 3b c1             	cmp    %r9,%rax
140387039:	74 69                	je     0x1403870a4
14038703b:	0f 1f 44 00 00       	nopl   0x0(%rax,%rax,1)
140387040:	48 8b 08             	mov    (%rax),%rcx
140387043:	48 89 10             	mov    %rdx,(%rax)
140387046:	49 89 08             	mov    %rcx,(%r8)
140387049:	4d 8d 40 08          	lea    0x8(%r8),%r8
14038704d:	48 83 c0 08          	add    $0x8,%rax
140387051:	49 3b c1             	cmp    %r9,%rax
140387054:	75 ea                	jne    0x140387040
140387056:	eb 4c                	jmp    0x1403870a4
140387058:	48 3b c3             	cmp    %rbx,%rax
14038705b:	74 19                	je     0x140387076
14038705d:	0f 1f 00             	nopl   (%rax)
140387060:	48 8b 08             	mov    (%rax),%rcx
140387063:	48 89 10             	mov    %rdx,(%rax)
140387066:	49 89 08             	mov    %rcx,(%r8)
140387069:	4d 8d 40 08          	lea    0x8(%r8),%r8
14038706d:	48 83 c0 08          	add    $0x8,%rax
140387071:	48 3b c3             	cmp    %rbx,%rax
140387074:	75 ea                	jne    0x140387060
140387076:	4c 89 94 24 88 00 00 	mov    %r10,0x88(%rsp)
14038707d:	00
14038707e:	4c 8b 5e 08          	mov    0x8(%rsi),%r11
140387082:	49 3b db             	cmp    %r11,%rbx
140387085:	74 1d                	je     0x1403870a4
140387087:	49 8b ca             	mov    %r10,%rcx
14038708a:	48 2b cb             	sub    %rbx,%rcx
14038708d:	49 03 cf             	add    %r15,%rcx
140387090:	48 8b 03             	mov    (%rbx),%rax
140387093:	48 89 13             	mov    %rdx,(%rbx)
140387096:	48 89 44 0b 08       	mov    %rax,0x8(%rbx,%rcx,1)
14038709b:	48 83 c3 08          	add    $0x8,%rbx
14038709f:	49 3b db             	cmp    %r11,%rbx
1403870a2:	75 ec                	jne    0x140387090
1403870a4:	4c 8b cf             	mov    %rdi,%r9
1403870a7:	4d 8b c5             	mov    %r13,%r8
1403870aa:	49 8b d2             	mov    %r10,%rdx
1403870ad:	48 8b ce             	mov    %rsi,%rcx
1403870b0:	e8 1b 80 e8 ff       	call   0x14020f0d0
1403870b5:	49 8b c6             	mov    %r14,%rax
1403870b8:	48 83 c4 30          	add    $0x30,%rsp
1403870bc:	41 5f                	pop    %r15
1403870be:	41 5e                	pop    %r14
1403870c0:	41 5d                	pop    %r13
1403870c2:	41 5c                	pop    %r12
1403870c4:	5f                   	pop    %rdi
1403870c5:	5e                   	pop    %rsi
1403870c6:	5b                   	pop    %rbx
1403870c7:	c3                   	ret
1403870c8:	e8 c3 60 e1 ff       	call   0x14019d190
1403870cd:	cc                   	int3
1403870ce:	e8 bd 64 e1 ff       	call   0x14019d590
1403870d3:	cc                   	int3
1403870d4:	e8 cb 30 aa 00       	call   0x140e2a1a4
1403870d9:	cc                   	int3
1403870da:	cc                   	int3
1403870db:	cc                   	int3
1403870dc:	cc                   	int3
1403870dd:	cc                   	int3
1403870de:	cc                   	int3
1403870df:	cc                   	int3
1403870e0:	4c 89 4c 24 20       	mov    %r9,0x20(%rsp)
1403870e5:	53                   	push   %rbx
1403870e6:	56                   	push   %rsi
1403870e7:	41 57                	push   %r15
1403870e9:	48 83 ec 40          	sub    $0x40,%rsp
1403870ed:	4c 8b 79 10          	mov    0x10(%rcx),%r15
1403870f1:	48 bb fe ff ff ff ff 	movabs $0x7ffffffffffffffe,%rbx
1403870f8:	ff ff 7f
1403870fb:	48 8b c3             	mov    %rbx,%rax
1403870fe:	48 8b f1             	mov    %rcx,%rsi
140387101:	49 2b c7             	sub    %r15,%rax
140387104:	48 3b c2             	cmp    %rdx,%rax
140387107:	0f 82 bd 01 00 00    	jb     0x1403872ca
14038710d:	48 89 6c 24 68       	mov    %rbp,0x68(%rsp)
140387112:	48 8b 69 18          	mov    0x18(%rcx),%rbp
140387116:	48 89 7c 24 38       	mov    %rdi,0x38(%rsp)
14038711b:	4c 89 64 24 30       	mov    %r12,0x30(%rsp)
140387120:	4c 89 6c 24 28       	mov    %r13,0x28(%rsp)
140387125:	4c 89 74 24 20       	mov    %r14,0x20(%rsp)
14038712a:	4d 8d 34 17          	lea    (%r15,%rdx,1),%r14
14038712e:	49 8b d6             	mov    %r14,%rdx
140387131:	48 83 ca 07          	or     $0x7,%rdx
140387135:	48 3b d3             	cmp    %rbx,%rdx
140387138:	77 3f                	ja     0x140387179
14038713a:	48 8b cd             	mov    %rbp,%rcx
14038713d:	48 8b c3             	mov    %rbx,%rax
140387140:	48 d1 e9             	shr    $1,%rcx
140387143:	48 2b c1             	sub    %rcx,%rax
140387146:	48 3b e8             	cmp    %rax,%rbp
140387149:	77 2e                	ja     0x140387179
14038714b:	48 8d 04 29          	lea    (%rcx,%rbp,1),%rax
14038714f:	48 8b da             	mov    %rdx,%rbx
140387152:	48 3b d0             	cmp    %rax,%rdx
140387155:	48 0f 42 d8          	cmovb  %rax,%rbx
140387159:	48 b8 ff ff ff ff ff 	movabs $0x7fffffffffffffff,%rax
140387160:	ff ff 7f
140387163:	48 8d 4b 01          	lea    0x1(%rbx),%rcx
140387167:	48 3b c8             	cmp    %rax,%rcx
14038716a:	0f 87 54 01 00 00    	ja     0x1403872c4
140387170:	48 03 c9             	add    %rcx,%rcx
140387173:	75 12                	jne    0x140387187
140387175:	33 ff                	xor    %edi,%edi
140387177:	eb 4b                	jmp    0x1403871c4
140387179:	48 b8 ff ff ff ff ff 	movabs $0x7fffffffffffffff,%rax
140387180:	ff ff 7f
140387183:	48 8d 0c 00          	lea    (%rax,%rax,1),%rcx
140387187:	48 81 f9 00 10 00 00 	cmp    $0x1000,%rcx
14038718e:	72 2c                	jb     0x1403871bc
140387190:	48 8d 41 27          	lea    0x27(%rcx),%rax
140387194:	48 3b c1             	cmp    %rcx,%rax
140387197:	0f 86 27 01 00 00    	jbe    0x1403872c4
14038719d:	48 8b c8             	mov    %rax,%rcx
1403871a0:	e8 63 3f a9 00       	call   0x140e1b108
1403871a5:	48 85 c0             	test   %rax,%rax
1403871a8:	0f 84 10 01 00 00    	je     0x1403872be
1403871ae:	48 8d 78 27          	lea    0x27(%rax),%rdi
1403871b2:	48 83 e7 e0          	and    $0xffffffffffffffe0,%rdi
1403871b6:	48 89 47 f8          	mov    %rax,-0x8(%rdi)
1403871ba:	eb 08                	jmp    0x1403871c4
1403871bc:	e8 47 3f a9 00       	call   0x140e1b108
1403871c1:	48 8b f8             	mov    %rax,%rdi
1403871c4:	48 8b 44 24 78       	mov    0x78(%rsp),%rax
1403871c9:	48 8b 8c 24 88 00 00 	mov    0x88(%rsp),%rcx
1403871d0:	00
1403871d1:	4c 2b f8             	sub    %rax,%r15
1403871d4:	4c 89 76 10          	mov    %r14,0x10(%rsi)
1403871d8:	48 89 5e 18          	mov    %rbx,0x18(%rsi)
1403871dc:	4c 8d 34 00          	lea    (%rax,%rax,1),%r14
1403871e0:	4c 8d 24 09          	lea    (%rcx,%rcx,1),%r12
1403871e4:	4d 8b c6             	mov    %r14,%r8
1403871e7:	48 03 c8             	add    %rax,%rcx
1403871ea:	4d 8d 2c 3e          	lea    (%r14,%rdi,1),%r13
1403871ee:	48 8d 1c 4f          	lea    (%rdi,%rcx,2),%rbx
1403871f2:	48 8b cf             	mov    %rdi,%rcx
1403871f5:	48 89 5c 24 60       	mov    %rbx,0x60(%rsp)
1403871fa:	48 83 fd 07          	cmp    $0x7,%rbp
1403871fe:	76 67                	jbe    0x140387267
140387200:	48 8b 1e             	mov    (%rsi),%rbx
140387203:	48 8b d3             	mov    %rbx,%rdx
140387206:	e8 05 7e b5 00       	call   0x140edf010
14038720b:	48 8b 94 24 80 00 00 	mov    0x80(%rsp),%rdx
140387212:	00
140387213:	4d 8b c4             	mov    %r12,%r8
140387216:	49 8b cd             	mov    %r13,%rcx
140387219:	e8 f2 7d b5 00       	call   0x140edf010
14038721e:	48 8b 4c 24 60       	mov    0x60(%rsp),%rcx
140387223:	49 8d 14 1e          	lea    (%r14,%rbx,1),%rdx
140387227:	4e 8d 04 7d 02 00 00 	lea    0x2(,%r15,2),%r8
14038722e:	00
14038722f:	e8 dc 7d b5 00       	call   0x140edf010
140387234:	48 8d 14 6d 02 00 00 	lea    0x2(,%rbp,2),%rdx
14038723b:	00
14038723c:	48 81 fa 00 10 00 00 	cmp    $0x1000,%rdx
140387243:	72 18                	jb     0x14038725d
140387245:	48 8b 4b f8          	mov    -0x8(%rbx),%rcx
140387249:	48 83 c2 27          	add    $0x27,%rdx
14038724d:	48 2b d9             	sub    %rcx,%rbx
140387250:	48 8d 43 f8          	lea    -0x8(%rbx),%rax
140387254:	48 83 f8 1f          	cmp    $0x1f,%rax
140387258:	77 64                	ja     0x1403872be
14038725a:	48 8b d9             	mov    %rcx,%rbx
14038725d:	48 8b cb             	mov    %rbx,%rcx
140387260:	e8 df 3e a9 00       	call   0x140e1b144
140387265:	eb 2f                	jmp    0x140387296
140387267:	48 8b d6             	mov    %rsi,%rdx
14038726a:	e8 a1 7d b5 00       	call   0x140edf010
14038726f:	48 8b 94 24 80 00 00 	mov    0x80(%rsp),%rdx
140387276:	00
140387277:	4d 8b c4             	mov    %r12,%r8
14038727a:	49 8b cd             	mov    %r13,%rcx
14038727d:	e8 8e 7d b5 00       	call   0x140edf010
140387282:	49 8d 14 36          	lea    (%r14,%rsi,1),%rdx
140387286:	48 8b cb             	mov    %rbx,%rcx
140387289:	4e 8d 04 7d 02 00 00 	lea    0x2(,%r15,2),%r8
140387290:	00
140387291:	e8 7a 7d b5 00       	call   0x140edf010
140387296:	48 89 3e             	mov    %rdi,(%rsi)
140387299:	48 8b c6             	mov    %rsi,%rax
14038729c:	4c 8b 6c 24 28       	mov    0x28(%rsp),%r13
1403872a1:	4c 8b 64 24 30       	mov    0x30(%rsp),%r12
1403872a6:	48 8b 7c 24 38       	mov    0x38(%rsp),%rdi
1403872ab:	48 8b 6c 24 68       	mov    0x68(%rsp),%rbp
1403872b0:	4c 8b 74 24 20       	mov    0x20(%rsp),%r14
1403872b5:	48 83 c4 40          	add    $0x40,%rsp
1403872b9:	41 5f                	pop    %r15
1403872bb:	5e                   	pop    %rsi
1403872bc:	5b                   	pop    %rbx
1403872bd:	c3                   	ret
1403872be:	e8 e1 2e aa 00       	call   0x140e2a1a4
1403872c3:	cc                   	int3
1403872c4:	e8 c7 5e e1 ff       	call   0x14019d190
1403872c9:	cc                   	int3
1403872ca:	e8 a1 62 e1 ff       	call   0x14019d570
1403872cf:	cc                   	int3
1403872d0:	48 89 5c 24 08       	mov    %rbx,0x8(%rsp)
1403872d5:	48 89 74 24 18       	mov    %rsi,0x18(%rsp)
1403872da:	57                   	push   %rdi
1403872db:	41 54                	push   %r12
1403872dd:	41 55                	push   %r13
1403872df:	41 56                	push   %r14
1403872e1:	41 57                	push   %r15
1403872e3:	48 83 ec 50          	sub    $0x50,%rsp
1403872e7:	4c 8b e2             	mov    %rdx,%r12
1403872ea:	4c 8b f1             	mov    %rcx,%r14
1403872ed:	49 b9 e3 38 8e e3 38 	movabs $0xe38e38e38e38e3,%r9
1403872f4:	8e e3 00
1403872f7:	49 3b d1             	cmp    %r9,%rdx
1403872fa:	0f 87 0a 02 00 00    	ja     0x14038750a
140387300:	4c 89 74 24 20       	mov    %r14,0x20(%rsp)
140387305:	48 8b 49 08          	mov    0x8(%rcx),%rcx
140387309:	49 2b 0e             	sub    (%r14),%rcx
14038730c:	49 ba 39 8e e3 38 8e 	movabs $0xe38e38e38e38e39,%r10
140387313:	e3 38 0e
140387316:	49 8b c2             	mov    %r10,%rax
140387319:	48 f7 e9             	imul   %rcx
14038731c:	48 8b da             	mov    %rdx,%rbx
14038731f:	48 c1 fb 04          	sar    $0x4,%rbx
140387323:	48 8b c3             	mov    %rbx,%rax
140387326:	48 c1 e8 3f          	shr    $0x3f,%rax
14038732a:	48 03 d8             	add    %rax,%rbx
14038732d:	49 8b 4e 10          	mov    0x10(%r14),%rcx
140387331:	49 2b 0e             	sub    (%r14),%rcx
140387334:	49 8b c2             	mov    %r10,%rax
140387337:	48 f7 e9             	imul   %rcx
14038733a:	48 c1 fa 04          	sar    $0x4,%rdx
14038733e:	48 8b c2             	mov    %rdx,%rax
140387341:	48 c1 e8 3f          	shr    $0x3f,%rax
140387345:	48 03 d0             	add    %rax,%rdx
140387348:	48 8b ca             	mov    %rdx,%rcx
14038734b:	48 d1 e9             	shr    $1,%rcx
14038734e:	49 8b c1             	mov    %r9,%rax
140387351:	48 2b c1             	sub    %rcx,%rax
140387354:	48 3b d0             	cmp    %rax,%rdx
140387357:	76 15                	jbe    0x14038736e
140387359:	4c 89 8c 24 88 00 00 	mov    %r9,0x88(%rsp)
140387360:	00
140387361:	49 c7 c7 60 ff ff ff 	mov    $0xffffffffffffff60,%r15
140387368:	49 8d 4f 27          	lea    0x27(%r15),%rcx
14038736c:	eb 4e                	jmp    0x1403873bc
14038736e:	48 8d 04 11          	lea    (%rcx,%rdx,1),%rax
140387372:	49 3b c4             	cmp    %r12,%rax
140387375:	73 0d                	jae    0x140387384
140387377:	49 8b c4             	mov    %r12,%rax
14038737a:	48 89 84 24 88 00 00 	mov    %rax,0x88(%rsp)
140387381:	00
140387382:	eb 11                	jmp    0x140387395
140387384:	48 89 84 24 88 00 00 	mov    %rax,0x88(%rsp)
14038738b:	00
14038738c:	49 3b c1             	cmp    %r9,%rax
14038738f:	0f 87 6f 01 00 00    	ja     0x140387504
140387395:	4c 8d 3c c0          	lea    (%rax,%rax,8),%r15
140387399:	49 c1 e7 05          	shl    $0x5,%r15
14038739d:	4d 85 ff             	test   %r15,%r15
1403873a0:	75 04                	jne    0x1403873a6
1403873a2:	33 f6                	xor    %esi,%esi
1403873a4:	eb 3d                	jmp    0x1403873e3
1403873a6:	49 81 ff 00 10 00 00 	cmp    $0x1000,%r15
1403873ad:	72 29                	jb     0x1403873d8
1403873af:	49 8d 4f 27          	lea    0x27(%r15),%rcx
1403873b3:	49 3b cf             	cmp    %r15,%rcx
1403873b6:	0f 86 48 01 00 00    	jbe    0x140387504
1403873bc:	e8 47 3d a9 00       	call   0x140e1b108
1403873c1:	48 85 c0             	test   %rax,%rax
1403873c4:	0f 84 46 01 00 00    	je     0x140387510
1403873ca:	48 8d 70 27          	lea    0x27(%rax),%rsi
1403873ce:	48 83 e6 e0          	and    $0xffffffffffffffe0,%rsi
1403873d2:	48 89 46 f8          	mov    %rax,-0x8(%rsi)
1403873d6:	eb 0b                	jmp    0x1403873e3
1403873d8:	49 8b cf             	mov    %r15,%rcx
1403873db:	e8 28 3d a9 00       	call   0x140e1b108
1403873e0:	48 8b f0             	mov    %rax,%rsi
1403873e3:	48 89 74 24 30       	mov    %rsi,0x30(%rsp)
1403873e8:	48 8d 0c db          	lea    (%rbx,%rbx,8),%rcx
1403873ec:	48 c1 e1 05          	shl    $0x5,%rcx
1403873f0:	48 03 ce             	add    %rsi,%rcx
1403873f3:	48 89 4c 24 28       	mov    %rcx,0x28(%rsp)
1403873f8:	48 89 8c 24 98 00 00 	mov    %rcx,0x98(%rsp)
1403873ff:	00
140387400:	49 8b d4             	mov    %r12,%rdx
140387403:	48 2b d3             	sub    %rbx,%rdx
140387406:	4d 8b c6             	mov    %r14,%r8
140387409:	e8 82 04 00 00       	call   0x140387890
14038740e:	48 89 84 24 98 00 00 	mov    %rax,0x98(%rsp)
140387415:	00
140387416:	4d 8b 6e 08          	mov    0x8(%r14),%r13
14038741a:	49 8b 3e             	mov    (%r14),%rdi
14038741d:	48 89 74 24 38       	mov    %rsi,0x38(%rsp)
140387422:	48 8b de             	mov    %rsi,%rbx
140387425:	48 89 5c 24 40       	mov    %rbx,0x40(%rsp)
14038742a:	4c 89 74 24 48       	mov    %r14,0x48(%rsp)
14038742f:	90                   	nop
140387430:	49 3b fd             	cmp    %r13,%rdi
140387433:	74 20                	je     0x140387455
140387435:	48 8b d7             	mov    %rdi,%rdx
140387438:	48 8b cb             	mov    %rbx,%rcx
14038743b:	e8 80 13 00 00       	call   0x1403887c0
140387440:	48 81 c3 20 01 00 00 	add    $0x120,%rbx
140387447:	48 89 5c 24 40       	mov    %rbx,0x40(%rsp)
14038744c:	48 81 c7 20 01 00 00 	add    $0x120,%rdi
140387453:	eb db                	jmp    0x140387430
140387455:	49 8b 1e             	mov    (%r14),%rbx
140387458:	48 85 db             	test   %rbx,%rbx
14038745b:	74 73                	je     0x1403874d0
14038745d:	49 8b 7e 08          	mov    0x8(%r14),%rdi
140387461:	48 3b df             	cmp    %rdi,%rbx
140387464:	74 14                	je     0x14038747a
140387466:	48 8b cb             	mov    %rbx,%rcx
140387469:	e8 b2 22 00 00       	call   0x140389720