1400161e3:	48 d1 ea             	shr    $1,%rdx
1400161e6:	49 8b c0             	mov    %r8,%rax
1400161e9:	48 2b c2             	sub    %rdx,%rax
1400161ec:	48 3b c8             	cmp    %rax,%rcx
1400161ef:	76 05                	jbe    0x1400161f6
1400161f1:	49 8b f4             	mov    %r12,%rsi
1400161f4:	eb 0b                	jmp    0x140016201
1400161f6:	48 8d 34 0a          	lea    (%rdx,%rcx,1),%rsi
1400161fa:	49 3b f4             	cmp    %r12,%rsi
1400161fd:	49 0f 42 f4          	cmovb  %r12,%rsi
140016201:	48 89 b4 24 88 00 00 	mov    %rsi,0x88(%rsp)
140016208:	00
140016209:	48 8b c6             	mov    %rsi,%rax
14001620c:	48 c1 e0 04          	shl    $0x4,%rax
140016210:	48 83 ca ff          	or     $0xffffffffffffffff,%rdx
140016214:	49 3b f0             	cmp    %r8,%rsi
140016217:	48 0f 47 c2          	cmova  %rdx,%rax
14001621b:	48 3d 00 10 00 00    	cmp    $0x1000,%rax
140016221:	72 32                	jb     0x140016255
140016223:	48 8d 48 27          	lea    0x27(%rax),%rcx
140016227:	48 3b c8             	cmp    %rax,%rcx
14001622a:	48 0f 46 ca          	cmovbe %rdx,%rcx
14001622e:	e8 45 5f 00 00       	call   0x14001c178
140016233:	33 db                	xor    %ebx,%ebx
140016235:	48 85 c0             	test   %rax,%rax
140016238:	74 0e                	je     0x140016248
14001623a:	48 8d 50 27          	lea    0x27(%rax),%rdx
14001623e:	48 83 e2 e0          	and    $0xffffffffffffffe0,%rdx
140016242:	48 89 42 f8          	mov    %rax,-0x8(%rdx)
140016246:	eb 24                	jmp    0x14001626c
140016248:	48 ff 15 a9 9e 00 00 	rex.W call *0x9ea9(%rip)        # 0x1400200f8
14001624f:	0f 1f 44 00 00       	nopl   0x0(%rax,%rax,1)
140016254:	cc                   	int3
140016255:	33 db                	xor    %ebx,%ebx
140016257:	48 85 c0             	test   %rax,%rax
14001625a:	74 0d                	je     0x140016269
14001625c:	48 8b c8             	mov    %rax,%rcx
14001625f:	e8 14 5f 00 00       	call   0x14001c178
140016264:	48 8b d0             	mov    %rax,%rdx
140016267:	eb 03                	jmp    0x14001626c
140016269:	48 8b d3             	mov    %rbx,%rdx
14001626c:	48 89 54 24 70       	mov    %rdx,0x70(%rsp)
140016271:	49 83 e6 f0          	and    $0xfffffffffffffff0,%r14
140016275:	49 8d 0c 16          	lea    (%r14,%rdx,1),%rcx
140016279:	4c 8d 41 10          	lea    0x10(%rcx),%r8
14001627d:	4c 89 44 24 20       	mov    %r8,0x20(%rsp)
140016282:	48 89 19             	mov    %rbx,(%rcx)
140016285:	48 89 59 08          	mov    %rbx,0x8(%rcx)
140016289:	49 8b 45 08          	mov    0x8(%r13),%rax
14001628d:	48 85 c0             	test   %rax,%rax
140016290:	74 04                	je     0x140016296
140016292:	f0 ff 40 08          	lock incl 0x8(%rax)
140016296:	49 8b 45 00          	mov    0x0(%r13),%rax
14001629a:	48 89 01             	mov    %rax,(%rcx)
14001629d:	49 8b 45 08          	mov    0x8(%r13),%rax
1400162a1:	48 89 41 08          	mov    %rax,0x8(%rcx)
1400162a5:	48 89 4c 24 78       	mov    %rcx,0x78(%rsp)
1400162aa:	4d 8b 57 08          	mov    0x8(%r15),%r10
1400162ae:	49 8b 0f             	mov    (%r15),%rcx
1400162b1:	49 3b fa             	cmp    %r10,%rdi
1400162b4:	75 30                	jne    0x1400162e6
1400162b6:	4c 8b c2             	mov    %rdx,%r8
1400162b9:	eb 24                	jmp    0x1400162df
1400162bb:	49 89 18             	mov    %rbx,(%r8)
1400162be:	49 89 58 08          	mov    %rbx,0x8(%r8)
1400162c2:	48 8b 01             	mov    (%rcx),%rax
1400162c5:	49 89 00             	mov    %rax,(%r8)
1400162c8:	48 8b 41 08          	mov    0x8(%rcx),%rax
1400162cc:	49 89 40 08          	mov    %rax,0x8(%r8)
1400162d0:	48 89 19             	mov    %rbx,(%rcx)
1400162d3:	48 89 59 08          	mov    %rbx,0x8(%rcx)
1400162d7:	4d 8d 40 10          	lea    0x10(%r8),%r8
1400162db:	48 83 c1 10          	add    $0x10,%rcx
1400162df:	49 3b ca             	cmp    %r10,%rcx
1400162e2:	75 d7                	jne    0x1400162bb
1400162e4:	eb 77                	jmp    0x14001635d
1400162e6:	4c 8b ca             	mov    %rdx,%r9
1400162e9:	48 3b cf             	cmp    %rdi,%rcx
1400162ec:	74 2d                	je     0x14001631b
1400162ee:	49 89 19             	mov    %rbx,(%r9)
1400162f1:	49 89 59 08          	mov    %rbx,0x8(%r9)
1400162f5:	48 8b 01             	mov    (%rcx),%rax
1400162f8:	49 89 01             	mov    %rax,(%r9)
1400162fb:	48 8b 41 08          	mov    0x8(%rcx),%rax
1400162ff:	49 89 41 08          	mov    %rax,0x8(%r9)
140016303:	48 89 19             	mov    %rbx,(%rcx)
140016306:	48 89 59 08          	mov    %rbx,0x8(%rcx)
14001630a:	4d 8d 49 10          	lea    0x10(%r9),%r9
14001630e:	48 83 c1 10          	add    $0x10,%rcx
140016312:	48 3b cf             	cmp    %rdi,%rcx
140016315:	75 d7                	jne    0x1400162ee
140016317:	4d 8b 57 08          	mov    0x8(%r15),%r10
14001631b:	48 89 54 24 78       	mov    %rdx,0x78(%rsp)
140016320:	49 3b fa             	cmp    %r10,%rdi
140016323:	74 38                	je     0x14001635d
140016325:	49 2b fe             	sub    %r14,%rdi
140016328:	48 2b fa             	sub    %rdx,%rdi
14001632b:	49 89 18             	mov    %rbx,(%r8)
14001632e:	49 89 58 08          	mov    %rbx,0x8(%r8)
140016332:	4a 8b 44 07 f0       	mov    -0x10(%rdi,%r8,1),%rax
140016337:	49 89 00             	mov    %rax,(%r8)
14001633a:	4a 8b 44 07 f8       	mov    -0x8(%rdi,%r8,1),%rax
14001633f:	49 89 40 08          	mov    %rax,0x8(%r8)
140016343:	4a 89 5c 07 f0       	mov    %rbx,-0x10(%rdi,%r8,1)
140016348:	4a 89 5c 07 f8       	mov    %rbx,-0x8(%rdi,%r8,1)
14001634d:	49 83 c0 10          	add    $0x10,%r8
140016351:	48 8d 47 f0          	lea    -0x10(%rdi),%rax
140016355:	49 03 c0             	add    %r8,%rax
140016358:	49 3b c2             	cmp    %r10,%rax
14001635b:	75 ce                	jne    0x14001632b
14001635d:	4c 8b ce             	mov    %rsi,%r9
140016360:	4d 8b c4             	mov    %r12,%r8
140016363:	49 8b cf             	mov    %r15,%rcx
140016366:	e8 71 0b 00 00       	call   0x140016edc
14001636b:	49 8b 07             	mov    (%r15),%rax
14001636e:	49 03 c6             	add    %r14,%rax
140016371:	48 83 c4 30          	add    $0x30,%rsp
140016375:	41 5f                	pop    %r15
140016377:	41 5e                	pop    %r14
140016379:	41 5d                	pop    %r13
14001637b:	41 5c                	pop    %r12
14001637d:	5f                   	pop    %rdi
14001637e:	5e                   	pop    %rsi
14001637f:	5b                   	pop    %rbx
140016380:	c3                   	ret
140016381:	cc                   	int3
140016382:	e8 51 53 ff ff       	call   0x14000b6d8
140016387:	cc                   	int3
140016388:	cc                   	int3
140016389:	cc                   	int3
14001638a:	cc                   	int3
14001638b:	cc                   	int3
14001638c:	cc                   	int3
14001638d:	cc                   	int3
14001638e:	cc                   	int3
14001638f:	cc                   	int3
140016390:	48 89 5c 24 18       	mov    %rbx,0x18(%rsp)
140016395:	48 89 74 24 20       	mov    %rsi,0x20(%rsp)
14001639a:	57                   	push   %rdi
14001639b:	41 54                	push   %r12
14001639d:	41 55                	push   %r13
14001639f:	41 56                	push   %r14
1400163a1:	41 57                	push   %r15
1400163a3:	48 83 ec 20          	sub    $0x20,%rsp
1400163a7:	4d 8b e8             	mov    %r8,%r13
1400163aa:	4c 8b e2             	mov    %rdx,%r12
1400163ad:	48 8b f9             	mov    %rcx,%rdi
1400163b0:	4c 8b f2             	mov    %rdx,%r14
1400163b3:	4c 2b 31             	sub    (%rcx),%r14
1400163b6:	48 8b 71 08          	mov    0x8(%rcx),%rsi
1400163ba:	48 2b 31             	sub    (%rcx),%rsi
1400163bd:	48 c1 fe 04          	sar    $0x4,%rsi
1400163c1:	49 b8 ff ff ff ff ff 	movabs $0xfffffffffffffff,%r8
1400163c8:	ff ff 0f
1400163cb:	49 3b f0             	cmp    %r8,%rsi
1400163ce:	0f 84 4e 01 00 00    	je     0x140016522
1400163d4:	48 ff c6             	inc    %rsi
1400163d7:	48 8b 49 10          	mov    0x10(%rcx),%rcx
1400163db:	48 2b 0f             	sub    (%rdi),%rcx
1400163de:	48 c1 f9 04          	sar    $0x4,%rcx
1400163e2:	48 8b d1             	mov    %rcx,%rdx
1400163e5:	48 d1 ea             	shr    $1,%rdx
1400163e8:	49 8b c0             	mov    %r8,%rax
1400163eb:	48 2b c2             	sub    %rdx,%rax
1400163ee:	48 3b c8             	cmp    %rax,%rcx
1400163f1:	76 05                	jbe    0x1400163f8
1400163f3:	48 8b c6             	mov    %rsi,%rax
1400163f6:	eb 0b                	jmp    0x140016403
1400163f8:	48 8d 04 0a          	lea    (%rdx,%rcx,1),%rax
1400163fc:	48 3b c6             	cmp    %rsi,%rax
1400163ff:	48 0f 42 c6          	cmovb  %rsi,%rax
140016403:	48 89 44 24 58       	mov    %rax,0x58(%rsp)
140016408:	4c 8b f8             	mov    %rax,%r15
14001640b:	49 c1 e7 04          	shl    $0x4,%r15
14001640f:	49 8b d7             	mov    %r15,%rdx
140016412:	49 83 c9 ff          	or     $0xffffffffffffffff,%r9
140016416:	49 3b c0             	cmp    %r8,%rax
140016419:	49 0f 47 d1          	cmova  %r9,%rdx
14001641d:	48 81 fa 00 10 00 00 	cmp    $0x1000,%rdx
140016424:	72 27                	jb     0x14001644d
140016426:	48 8d 4a 27          	lea    0x27(%rdx),%rcx
14001642a:	48 3b ca             	cmp    %rdx,%rcx
14001642d:	49 0f 46 c9          	cmovbe %r9,%rcx
140016431:	e8 42 5d 00 00       	call   0x14001c178
140016436:	48 85 c0             	test   %rax,%rax
140016439:	0f 84 d6 00 00 00    	je     0x140016515
14001643f:	48 8d 58 27          	lea    0x27(%rax),%rbx
140016443:	48 83 e3 e0          	and    $0xffffffffffffffe0,%rbx
140016447:	48 89 43 f8          	mov    %rax,-0x8(%rbx)
14001644b:	eb 14                	jmp    0x140016461
14001644d:	48 85 d2             	test   %rdx,%rdx
140016450:	74 0d                	je     0x14001645f
140016452:	48 8b ca             	mov    %rdx,%rcx
140016455:	e8 1e 5d 00 00       	call   0x14001c178
14001645a:	48 8b d8             	mov    %rax,%rbx
14001645d:	eb 02                	jmp    0x140016461
14001645f:	33 db                	xor    %ebx,%ebx
140016461:	48 89 5c 24 50       	mov    %rbx,0x50(%rsp)
140016466:	49 83 e6 f0          	and    $0xfffffffffffffff0,%r14
14001646a:	4c 03 f3             	add    %rbx,%r14
14001646d:	41 0f 10 45 00       	movups 0x0(%r13),%xmm0
140016472:	f3 41 0f 7f 06       	movdqu %xmm0,(%r14)
140016477:	4c 8b 47 08          	mov    0x8(%rdi),%r8
14001647b:	48 8b 17             	mov    (%rdi),%rdx
14001647e:	48 8b cb             	mov    %rbx,%rcx
140016481:	4d 3b e0             	cmp    %r8,%r12
140016484:	75 05                	jne    0x14001648b
140016486:	4c 2b c2             	sub    %rdx,%r8
140016489:	eb 19                	jmp    0x1400164a4
14001648b:	4d 8b c4             	mov    %r12,%r8
14001648e:	4c 2b 07             	sub    (%rdi),%r8
140016491:	e8 49 65 00 00       	call   0x14001c9df
140016496:	4c 8b 47 08          	mov    0x8(%rdi),%r8
14001649a:	49 8d 4e 10          	lea    0x10(%r14),%rcx
14001649e:	4d 2b c4             	sub    %r12,%r8
1400164a1:	49 8b d4             	mov    %r12,%rdx
1400164a4:	e8 36 65 00 00       	call   0x14001c9df
1400164a9:	90                   	nop
1400164aa:	48 8b 0f             	mov    (%rdi),%rcx
1400164ad:	48 85 c9             	test   %rcx,%rcx
1400164b0:	74 31                	je     0x1400164e3
1400164b2:	48 8b 57 10          	mov    0x10(%rdi),%rdx
1400164b6:	48 2b d1             	sub    %rcx,%rdx
1400164b9:	48 83 e2 f0          	and    $0xfffffffffffffff0,%rdx
1400164bd:	48 81 fa 00 10 00 00 	cmp    $0x1000,%rdx
1400164c4:	72 18                	jb     0x1400164de
1400164c6:	48 83 c2 27          	add    $0x27,%rdx
1400164ca:	4c 8b 41 f8          	mov    -0x8(%rcx),%r8
1400164ce:	49 2b c8             	sub    %r8,%rcx
1400164d1:	48 8d 41 f8          	lea    -0x8(%rcx),%rax
1400164d5:	48 83 f8 1f          	cmp    $0x1f,%rax
1400164d9:	77 3a                	ja     0x140016515
1400164db:	49 8b c8             	mov    %r8,%rcx
1400164de:	e8 05 56 00 00       	call   0x14001bae8
1400164e3:	48 89 1f             	mov    %rbx,(%rdi)
1400164e6:	48 c1 e6 04          	shl    $0x4,%rsi
1400164ea:	48 03 f3             	add    %rbx,%rsi
1400164ed:	48 89 77 08          	mov    %rsi,0x8(%rdi)
1400164f1:	49 8d 0c 1f          	lea    (%r15,%rbx,1),%rcx
1400164f5:	48 89 4f 10          	mov    %rcx,0x10(%rdi)
1400164f9:	49 8b c6             	mov    %r14,%rax
1400164fc:	48 8b 5c 24 60       	mov    0x60(%rsp),%rbx
140016501:	48 8b 74 24 68       	mov    0x68(%rsp),%rsi
140016506:	48 83 c4 20          	add    $0x20,%rsp
14001650a:	41 5f                	pop    %r15
14001650c:	41 5e                	pop    %r14
14001650e:	41 5d                	pop    %r13
140016510:	41 5c                	pop    %r12
140016512:	5f                   	pop    %rdi
140016513:	c3                   	ret
140016514:	cc                   	int3
140016515:	48 ff 15 dc 9b 00 00 	rex.W call *0x9bdc(%rip)        # 0x1400200f8
14001651c:	0f 1f 44 00 00       	nopl   0x0(%rax,%rax,1)
140016521:	cc                   	int3
140016522:	e8 b1 51 ff ff       	call   0x14000b6d8
140016527:	cc                   	int3
140016528:	cc                   	int3
140016529:	cc                   	int3
14001652a:	cc                   	int3
14001652b:	cc                   	int3
14001652c:	cc                   	int3
14001652d:	cc                   	int3
14001652e:	cc                   	int3
14001652f:	cc                   	int3
140016530:	4c 89 44 24 18       	mov    %r8,0x18(%rsp)
140016535:	53                   	push   %rbx
140016536:	56                   	push   %rsi
140016537:	57                   	push   %rdi
140016538:	41 54                	push   %r12
14001653a:	41 55                	push   %r13
14001653c:	41 56                	push   %r14
14001653e:	41 57                	push   %r15
140016540:	48 83 ec 30          	sub    $0x30,%rsp
140016544:	4c 8b f2             	mov    %rdx,%r14
140016547:	48 8b f1             	mov    %rcx,%rsi
14001654a:	4c 8b e2             	mov    %rdx,%r12
14001654d:	4c 2b 21             	sub    (%rcx),%r12
140016550:	4c 8b 79 08          	mov    0x8(%rcx),%r15
140016554:	4c 2b 39             	sub    (%rcx),%r15
140016557:	49 c1 ff 04          	sar    $0x4,%r15
14001655b:	49 b9 ff ff ff ff ff 	movabs $0xfffffffffffffff,%r9
140016562:	ff ff 0f
140016565:	4d 3b f9             	cmp    %r9,%r15
140016568:	0f 84 0e 02 00 00    	je     0x14001677c
14001656e:	49 ff c7             	inc    %r15
140016571:	48 8b 49 10          	mov    0x10(%rcx),%rcx
140016575:	48 2b 0e             	sub    (%rsi),%rcx
140016578:	48 c1 f9 04          	sar    $0x4,%rcx
14001657c:	48 8b d1             	mov    %rcx,%rdx
14001657f:	48 d1 ea             	shr    $1,%rdx
140016582:	49 8b c1             	mov    %r9,%rax
140016585:	48 2b c2             	sub    %rdx,%rax
140016588:	48 3b c8             	cmp    %rax,%rcx
14001658b:	76 05                	jbe    0x140016592
14001658d:	49 8b c7             	mov    %r15,%rax
140016590:	eb 0b                	jmp    0x14001659d
140016592:	48 8d 04 0a          	lea    (%rdx,%rcx,1),%rax
140016596:	49 3b c7             	cmp    %r15,%rax
140016599:	49 0f 42 c7          	cmovb  %r15,%rax
14001659d:	48 89 84 24 88 00 00 	mov    %rax,0x88(%rsp)
1400165a4:	00
1400165a5:	48 8b c8             	mov    %rax,%rcx
1400165a8:	48 c1 e1 04          	shl    $0x4,%rcx
1400165ac:	48 89 4c 24 20       	mov    %rcx,0x20(%rsp)
1400165b1:	48 8b d1             	mov    %rcx,%rdx
1400165b4:	49 83 ca ff          	or     $0xffffffffffffffff,%r10
1400165b8:	49 3b c1             	cmp    %r9,%rax
1400165bb:	49 0f 47 d2          	cmova  %r10,%rdx
1400165bf:	48 81 fa 00 10 00 00 	cmp    $0x1000,%rdx
1400165c6:	72 31                	jb     0x1400165f9
1400165c8:	48 8d 4a 27          	lea    0x27(%rdx),%rcx
1400165cc:	48 3b ca             	cmp    %rdx,%rcx
1400165cf:	49 0f 46 ca          	cmovbe %r10,%rcx
1400165d3:	e8 a0 5b 00 00       	call   0x14001c178
1400165d8:	33 ff                	xor    %edi,%edi
1400165da:	48 85 c0             	test   %rax,%rax
1400165dd:	0f 84 8c 01 00 00    	je     0x14001676f
1400165e3:	48 8d 58 27          	lea    0x27(%rax),%rbx
1400165e7:	48 83 e3 e0          	and    $0xffffffffffffffe0,%rbx
1400165eb:	48 89 43 f8          	mov    %rax,-0x8(%rbx)
1400165ef:	4c 8b 84 24 80 00 00 	mov    0x80(%rsp),%r8
1400165f6:	00
1400165f7:	eb 17                	jmp    0x140016610
1400165f9:	33 ff                	xor    %edi,%edi
1400165fb:	48 85 d2             	test   %rdx,%rdx
1400165fe:	74 0d                	je     0x14001660d
140016600:	48 8b ca             	mov    %rdx,%rcx
140016603:	e8 70 5b 00 00       	call   0x14001c178
140016608:	48 8b d8             	mov    %rax,%rbx
14001660b:	eb e2                	jmp    0x1400165ef
14001660d:	48 8b df             	mov    %rdi,%rbx
140016610:	48 89 5c 24 70       	mov    %rbx,0x70(%rsp)
140016615:	49 83 e4 f0          	and    $0xfffffffffffffff0,%r12
140016619:	4d 8d 2c 1c          	lea    (%r12,%rbx,1),%r13
14001661d:	49 8d 55 10          	lea    0x10(%r13),%rdx
140016621:	48 89 54 24 28       	mov    %rdx,0x28(%rsp)
140016626:	49 89 7d 00          	mov    %rdi,0x0(%r13)
14001662a:	49 89 7d 08          	mov    %rdi,0x8(%r13)
14001662e:	49 8b 00             	mov    (%r8),%rax
140016631:	49 89 45 00          	mov    %rax,0x0(%r13)
140016635:	49 8b 40 08          	mov    0x8(%r8),%rax
140016639:	49 89 45 08          	mov    %rax,0x8(%r13)
14001663d:	49 89 38             	mov    %rdi,(%r8)
140016640:	49 89 78 08          	mov    %rdi,0x8(%r8)
140016644:	4c 89 6c 24 78       	mov    %r13,0x78(%rsp)
140016649:	4c 8b 46 08          	mov    0x8(%rsi),%r8
14001664d:	48 8b 0e             	mov    (%rsi),%rcx
140016650:	4d 3b f0             	cmp    %r8,%r14
140016653:	75 30                	jne    0x140016685
140016655:	48 8b d3             	mov    %rbx,%rdx