1401b645b:	53                   	push   %rbx
1401b645c:	48 83 ec 38          	sub    $0x38,%rsp
1401b6460:	b8 01 00 00 00       	mov    $0x1,%eax
1401b6465:	31 ff                	xor    %edi,%edi
1401b6467:	4c 8b ac 24 a0 00 00 	mov    0xa0(%rsp),%r13
1401b646e:	00
1401b646f:	4c 8b b4 24 b0 00 00 	mov    0xb0(%rsp),%r14
1401b6476:	00
1401b6477:	49 89 cc             	mov    %rcx,%r12
1401b647a:	44 89 c9             	mov    %r9d,%ecx
1401b647d:	48 89 d5             	mov    %rdx,%rbp
1401b6480:	4c 89 c3             	mov    %r8,%rbx
1401b6483:	48 d3 e0             	shl    %cl,%rax
1401b6486:	4c 89 ce             	mov    %r9,%rsi
1401b6489:	48 83 e8 01          	sub    $0x1,%rax
1401b648d:	48 89 44 24 28       	mov    %rax,0x28(%rsp)
1401b6492:	48 85 d2             	test   %rdx,%rdx
1401b6495:	0f 84 11 01 00 00    	je     0x1401b65ac
1401b649b:	0f 1f 44 00 00       	nopl   0x0(%rax,%rax,1)
1401b64a0:	48 39 eb             	cmp    %rbp,%rbx
1401b64a3:	0f 83 17 01 00 00    	jae    0x1401b65c0
1401b64a9:	4d 8d 14 dc          	lea    (%r12,%rbx,8),%r10
1401b64ad:	49 8b 02             	mov    (%r10),%rax
1401b64b0:	48 83 f8 ff          	cmp    $0xffffffffffffffff,%rax
1401b64b4:	0f 84 e1 00 00 00    	je     0x1401b659b
1401b64ba:	48 89 c1             	mov    %rax,%rcx
1401b64bd:	48 f7 d1             	not    %rcx
1401b64c0:	f3 48 0f bc c9       	tzcnt  %rcx,%rcx
1401b64c5:	4c 63 c1             	movslq %ecx,%r8
1401b64c8:	48 83 fe 3f          	cmp    $0x3f,%rsi
1401b64cc:	0f 87 26 01 00 00    	ja     0x1401b65f8
1401b64d2:	48 85 f6             	test   %rsi,%rsi
1401b64d5:	0f 84 0d 01 00 00    	je     0x1401b65e8
1401b64db:	48 8b 54 24 28       	mov    0x28(%rsp),%rdx
1401b64e0:	41 bb 40 00 00 00    	mov    $0x40,%r11d
1401b64e6:	48 d3 e2             	shl    %cl,%rdx
1401b64e9:	49 29 f3             	sub    %rsi,%r11
1401b64ec:	4d 39 c3             	cmp    %r8,%r11
1401b64ef:	0f 82 a6 00 00 00    	jb     0x1401b659b
1401b64f5:	49 89 d1             	mov    %rdx,%r9
1401b64f8:	49 21 c1             	and    %rax,%r9
1401b64fb:	74 34                	je     0x1401b6531
1401b64fd:	48 83 fe 01          	cmp    $0x1,%rsi
1401b6501:	0f 84 c9 00 00 00    	je     0x1401b65d0
1401b6507:	41 bf 40 00 00 00    	mov    $0x40,%r15d
1401b650d:	4c 89 f9             	mov    %r15,%rcx
1401b6510:	4c 29 c1             	sub    %r8,%rcx
1401b6513:	4d 0f bd c9          	bsr    %r9,%r9
1401b6517:	41 83 f1 3f          	xor    $0x3f,%r9d
1401b651b:	4c 29 c9             	sub    %r9,%rcx
1401b651e:	49 01 c8             	add    %rcx,%r8
1401b6521:	48 d3 e2             	shl    %cl,%rdx
1401b6524:	4d 39 c3             	cmp    %r8,%r11
1401b6527:	72 72                	jb     0x1401b659b
1401b6529:	49 89 d1             	mov    %rdx,%r9
1401b652c:	49 21 c1             	and    %rax,%r9
1401b652f:	75 dc                	jne    0x1401b650d
1401b6531:	48 89 c1             	mov    %rax,%rcx
1401b6534:	48 09 d1             	or     %rdx,%rcx
1401b6537:	f0 49 0f b1 0a       	lock cmpxchg %rcx,(%r10)
1401b653c:	0f 85 95 00 00 00    	jne    0x1401b65d7
1401b6542:	48 89 d9             	mov    %rbx,%rcx
1401b6545:	48 c1 e1 06          	shl    $0x6,%rcx
1401b6549:	4c 01 c1             	add    %r8,%rcx
1401b654c:	49 89 0e             	mov    %rcx,(%r14)
1401b654f:	4d 85 ed             	test   %r13,%r13
1401b6552:	0f 84 b0 00 00 00    	je     0x1401b6608
1401b6558:	48 8b 94 24 a8 00 00 	mov    0xa8(%rsp),%rdx
1401b655f:	00
1401b6560:	41 ff d5             	call   *%r13
1401b6563:	84 c0                	test   %al,%al
1401b6565:	0f 85 9d 00 00 00    	jne    0x1401b6608
1401b656b:	49 8b 0e             	mov    (%r14),%rcx
1401b656e:	31 c0                	xor    %eax,%eax
1401b6570:	48 89 ca             	mov    %rcx,%rdx
1401b6573:	48 c1 ea 06          	shr    $0x6,%rdx
1401b6577:	48 83 fe 3f          	cmp    $0x3f,%rsi
1401b657b:	77 19                	ja     0x1401b6596
1401b657d:	48 8b 44 24 28       	mov    0x28(%rsp),%rax
1401b6582:	48 d3 e0             	shl    %cl,%rax
1401b6585:	48 85 f6             	test   %rsi,%rsi
1401b6588:	48 c7 c1 ff ff ff ff 	mov    $0xffffffffffffffff,%rcx
1401b658f:	48 f7 d0             	not    %rax
1401b6592:	48 0f 44 c1          	cmove  %rcx,%rax
1401b6596:	f0 49 21 04 d4       	lock and %rax,(%r12,%rdx,8)
1401b659b:	48 83 c7 01          	add    $0x1,%rdi
1401b659f:	48 83 c3 01          	add    $0x1,%rbx
1401b65a3:	48 39 fd             	cmp    %rdi,%rbp
1401b65a6:	0f 85 f4 fe ff ff    	jne    0x1401b64a0
1401b65ac:	31 c0                	xor    %eax,%eax
1401b65ae:	48 83 c4 38          	add    $0x38,%rsp
1401b65b2:	5b                   	pop    %rbx
1401b65b3:	5e                   	pop    %rsi
1401b65b4:	5f                   	pop    %rdi
1401b65b5:	5d                   	pop    %rbp
1401b65b6:	41 5c                	pop    %r12
1401b65b8:	41 5d                	pop    %r13
1401b65ba:	41 5e                	pop    %r14
1401b65bc:	41 5f                	pop    %r15
1401b65be:	c3                   	ret
1401b65bf:	90                   	nop
1401b65c0:	4d 89 e2             	mov    %r12,%r10
1401b65c3:	31 db                	xor    %ebx,%ebx
1401b65c5:	e9 e3 fe ff ff       	jmp    0x1401b64ad
1401b65ca:	66 0f 1f 44 00 00    	nopw   0x0(%rax,%rax,1)
1401b65d0:	49 83 c0 01          	add    $0x1,%r8
1401b65d4:	48 01 d2             	add    %rdx,%rdx
1401b65d7:	4d 39 c3             	cmp    %r8,%r11
1401b65da:	0f 83 15 ff ff ff    	jae    0x1401b64f5
1401b65e0:	eb b9                	jmp    0x1401b659b
1401b65e2:	66 0f 1f 44 00 00    	nopw   0x0(%rax,%rax,1)
1401b65e8:	31 d2                	xor    %edx,%edx
1401b65ea:	41 bb 40 00 00 00    	mov    $0x40,%r11d
1401b65f0:	e9 00 ff ff ff       	jmp    0x1401b64f5
1401b65f5:	0f 1f 00             	nopl   (%rax)
1401b65f8:	48 c7 c2 ff ff ff ff 	mov    $0xffffffffffffffff,%rdx
1401b65ff:	e9 dc fe ff ff       	jmp    0x1401b64e0
1401b6604:	0f 1f 40 00          	nopl   0x0(%rax)
1401b6608:	b8 01 00 00 00       	mov    $0x1,%eax
1401b660d:	eb 9f                	jmp    0x1401b65ae
1401b660f:	90                   	nop
1401b6610:	4d 89 ca             	mov    %r9,%r10
1401b6613:	48 89 ca             	mov    %rcx,%rdx
1401b6616:	49 c1 ea 06          	shr    $0x6,%r10
1401b661a:	49 83 f8 3f          	cmp    $0x3f,%r8
1401b661e:	77 50                	ja     0x1401b6670
1401b6620:	49 c7 c3 ff ff ff ff 	mov    $0xffffffffffffffff,%r11
1401b6627:	4d 85 c0             	test   %r8,%r8
1401b662a:	74 1b                	je     0x1401b6647
1401b662c:	44 89 c1             	mov    %r8d,%ecx
1401b662f:	b8 01 00 00 00       	mov    $0x1,%eax
1401b6634:	48 d3 e0             	shl    %cl,%rax
1401b6637:	44 89 c9             	mov    %r9d,%ecx
1401b663a:	4c 8d 40 ff          	lea    -0x1(%rax),%r8
1401b663e:	49 d3 e0             	shl    %cl,%r8
1401b6641:	4d 89 c3             	mov    %r8,%r11
1401b6644:	49 f7 d3             	not    %r11
1401b6647:	4a 8b 04 d2          	mov    (%rdx,%r10,8),%rax
1401b664b:	49 89 c1             	mov    %rax,%r9
1401b664e:	48 89 c1             	mov    %rax,%rcx
1401b6651:	4d 21 d9             	and    %r11,%r9
1401b6654:	f0 4e 0f b1 0c d2    	lock cmpxchg %r9,(%rdx,%r10,8)
1401b665a:	75 ef                	jne    0x1401b664b
1401b665c:	48 f7 d1             	not    %rcx
1401b665f:	4c 85 c1             	test   %r8,%rcx
1401b6662:	0f 94 c0             	sete   %al
1401b6665:	c3                   	ret
1401b6666:	66 2e 0f 1f 84 00 00 	cs nopw 0x0(%rax,%rax,1)
1401b666d:	00 00 00
1401b6670:	45 31 db             	xor    %r11d,%r11d
1401b6673:	49 c7 c0 ff ff ff ff 	mov    $0xffffffffffffffff,%r8
1401b667a:	eb cb                	jmp    0x1401b6647
1401b667c:	0f 1f 40 00          	nopl   0x0(%rax)
1401b6680:	4c 8b 5c 24 28       	mov    0x28(%rsp),%r11
1401b6685:	4d 89 ca             	mov    %r9,%r10
1401b6688:	48 89 ca             	mov    %rcx,%rdx
1401b668b:	49 c1 ea 06          	shr    $0x6,%r10
1401b668f:	49 83 f8 3f          	cmp    $0x3f,%r8
1401b6693:	77 4b                	ja     0x1401b66e0
1401b6695:	4d 85 c0             	test   %r8,%r8
1401b6698:	74 15                	je     0x1401b66af
1401b669a:	44 89 c1             	mov    %r8d,%ecx
1401b669d:	b8 01 00 00 00       	mov    $0x1,%eax
1401b66a2:	48 d3 e0             	shl    %cl,%rax
1401b66a5:	44 89 c9             	mov    %r9d,%ecx
1401b66a8:	4c 8d 40 ff          	lea    -0x1(%rax),%r8
1401b66ac:	49 d3 e0             	shl    %cl,%r8
1401b66af:	4a 8b 04 d2          	mov    (%rdx,%r10,8),%rax
1401b66b3:	49 89 c1             	mov    %rax,%r9
1401b66b6:	48 89 c1             	mov    %rax,%rcx
1401b66b9:	4d 09 c1             	or     %r8,%r9
1401b66bc:	f0 4e 0f b1 0c d2    	lock cmpxchg %r9,(%rdx,%r10,8)
1401b66c2:	75 ef                	jne    0x1401b66b3
1401b66c4:	48 89 c8             	mov    %rcx,%rax
1401b66c7:	4c 21 c0             	and    %r8,%rax
1401b66ca:	4d 85 db             	test   %r11,%r11
1401b66cd:	74 07                	je     0x1401b66d6
1401b66cf:	49 39 c0             	cmp    %rax,%r8
1401b66d2:	41 0f 95 03          	setne  (%r11)
1401b66d6:	48 85 c0             	test   %rax,%rax
1401b66d9:	0f 94 c0             	sete   %al
1401b66dc:	c3                   	ret
1401b66dd:	0f 1f 00             	nopl   (%rax)
1401b66e0:	49 c7 c0 ff ff ff ff 	mov    $0xffffffffffffffff,%r8
1401b66e7:	eb c6                	jmp    0x1401b66af
1401b66e9:	0f 1f 80 00 00 00 00 	nopl   0x0(%rax)
1401b66f0:	4d 89 ca             	mov    %r9,%r10
1401b66f3:	48 89 c8             	mov    %rcx,%rax
1401b66f6:	49 c1 ea 06          	shr    $0x6,%r10
1401b66fa:	49 83 f8 3f          	cmp    $0x3f,%r8
1401b66fe:	77 40                	ja     0x1401b6740
1401b6700:	4d 85 c0             	test   %r8,%r8
1401b6703:	74 15                	je     0x1401b671a
1401b6705:	44 89 c1             	mov    %r8d,%ecx
1401b6708:	ba 01 00 00 00       	mov    $0x1,%edx
1401b670d:	48 d3 e2             	shl    %cl,%rdx
1401b6710:	44 89 c9             	mov    %r9d,%ecx
1401b6713:	4c 8d 42 ff          	lea    -0x1(%rdx),%r8
1401b6717:	49 d3 e0             	shl    %cl,%r8
1401b671a:	4a 8d 14 d0          	lea    (%rax,%r10,8),%rdx
1401b671e:	48 8b 02             	mov    (%rdx),%rax
1401b6721:	49 85 c0             	test   %rax,%r8
1401b6724:	75 2a                	jne    0x1401b6750
1401b6726:	4c 89 c1             	mov    %r8,%rcx
1401b6729:	48 09 c1             	or     %rax,%rcx
1401b672c:	f0 48 0f b1 0a       	lock cmpxchg %rcx,(%rdx)
1401b6731:	75 ee                	jne    0x1401b6721
1401b6733:	b8 01 00 00 00       	mov    $0x1,%eax
1401b6738:	c3                   	ret
1401b6739:	0f 1f 80 00 00 00 00 	nopl   0x0(%rax)
1401b6740:	49 c7 c0 ff ff ff ff 	mov    $0xffffffffffffffff,%r8
1401b6747:	eb d1                	jmp    0x1401b671a
1401b6749:	0f 1f 80 00 00 00 00 	nopl   0x0(%rax)
1401b6750:	31 c0                	xor    %eax,%eax
1401b6752:	c3                   	ret
1401b6753:	66 66 2e 0f 1f 84 00 	data16 cs nopw 0x0(%rax,%rax,1)
1401b675a:	00 00 00 00
1401b675e:	66 90                	xchg   %ax,%ax
1401b6760:	4d 89 ca             	mov    %r9,%r10
1401b6763:	48 89 c8             	mov    %rcx,%rax
1401b6766:	49 c1 ea 06          	shr    $0x6,%r10
1401b676a:	49 83 f8 3f          	cmp    $0x3f,%r8
1401b676e:	77 30                	ja     0x1401b67a0
1401b6770:	4d 85 c0             	test   %r8,%r8
1401b6773:	74 15                	je     0x1401b678a
1401b6775:	44 89 c1             	mov    %r8d,%ecx
1401b6778:	ba 01 00 00 00       	mov    $0x1,%edx
1401b677d:	48 d3 e2             	shl    %cl,%rdx
1401b6780:	44 89 c9             	mov    %r9d,%ecx
1401b6783:	4c 8d 42 ff          	lea    -0x1(%rdx),%r8
1401b6787:	49 d3 e0             	shl    %cl,%r8
1401b678a:	4a 8b 04 d0          	mov    (%rax,%r10,8),%rax
1401b678e:	48 f7 d0             	not    %rax
1401b6791:	4c 85 c0             	test   %r8,%rax
1401b6794:	0f 94 c0             	sete   %al
1401b6797:	c3                   	ret
1401b6798:	0f 1f 84 00 00 00 00 	nopl   0x0(%rax,%rax,1)
1401b679f:	00
1401b67a0:	4a 8b 04 d0          	mov    (%rax,%r10,8),%rax
1401b67a4:	49 c7 c0 ff ff ff ff 	mov    $0xffffffffffffffff,%r8
1401b67ab:	48 f7 d0             	not    %rax
1401b67ae:	4c 85 c0             	test   %r8,%rax
1401b67b1:	0f 94 c0             	sete   %al
1401b67b4:	c3                   	ret
1401b67b5:	66 66 2e 0f 1f 84 00 	data16 cs nopw 0x0(%rax,%rax,1)
1401b67bc:	00 00 00 00
1401b67c0:	4d 89 ca             	mov    %r9,%r10
1401b67c3:	48 89 c8             	mov    %rcx,%rax
1401b67c6:	49 c1 ea 06          	shr    $0x6,%r10
1401b67ca:	49 83 f8 3f          	cmp    $0x3f,%r8
1401b67ce:	77 28                	ja     0x1401b67f8
1401b67d0:	4d 85 c0             	test   %r8,%r8
1401b67d3:	74 15                	je     0x1401b67ea
1401b67d5:	44 89 c1             	mov    %r8d,%ecx
1401b67d8:	ba 01 00 00 00       	mov    $0x1,%edx
1401b67dd:	48 d3 e2             	shl    %cl,%rdx
1401b67e0:	44 89 c9             	mov    %r9d,%ecx
1401b67e3:	4c 8d 42 ff          	lea    -0x1(%rdx),%r8
1401b67e7:	49 d3 e0             	shl    %cl,%r8
1401b67ea:	4a 8b 04 d0          	mov    (%rax,%r10,8),%rax
1401b67ee:	4c 85 c0             	test   %r8,%rax
1401b67f1:	0f 95 c0             	setne  %al
1401b67f4:	c3                   	ret
1401b67f5:	0f 1f 00             	nopl   (%rax)
1401b67f8:	4a 8b 04 d0          	mov    (%rax,%r10,8),%rax
1401b67fc:	49 c7 c0 ff ff ff ff 	mov    $0xffffffffffffffff,%r8
1401b6803:	4c 85 c0             	test   %r8,%rax
1401b6806:	0f 95 c0             	setne  %al
1401b6809:	c3                   	ret
1401b680a:	66 0f 1f 44 00 00    	nopw   0x0(%rax,%rax,1)
1401b6810:	41 57                	push   %r15
1401b6812:	41 56                	push   %r14
1401b6814:	41 55                	push   %r13
1401b6816:	41 54                	push   %r12
1401b6818:	55                   	push   %rbp
1401b6819:	57                   	push   %rdi
1401b681a:	56                   	push   %rsi
1401b681b:	53                   	push   %rbx
1401b681c:	48 83 ec 38          	sub    $0x38,%rsp
1401b6820:	49 89 cb             	mov    %rcx,%r11
1401b6823:	49 83 f9 02          	cmp    $0x2,%r9
1401b6827:	0f 86 83 03 00 00    	jbe    0x1401b6bb0
1401b682d:	45 31 d2             	xor    %r10d,%r10d
1401b6830:	48 85 d2             	test   %rdx,%rdx
1401b6833:	0f 84 8d 01 00 00    	je     0x1401b69c6
1401b6839:	41 be 01 00 00 00    	mov    $0x1,%r14d
1401b683f:	44 89 c9             	mov    %r9d,%ecx
1401b6842:	41 bf 40 00 00 00    	mov    $0x40,%r15d
1401b6848:	4c 89 f0             	mov    %r14,%rax
1401b684b:	48 d3 e0             	shl    %cl,%rax
1401b684e:	48 8d 58 ff          	lea    -0x1(%rax),%rbx
1401b6852:	66 66 2e 0f 1f 84 00 	data16 cs nopw 0x0(%rax,%rax,1)
1401b6859:	00 00 00 00
1401b685d:	0f 1f 00             	nopl   (%rax)
1401b6860:	49 39 d0             	cmp    %rdx,%r8
1401b6863:	0f 83 37 02 00 00    	jae    0x1401b6aa0
1401b6869:	4f 8d 2c c3          	lea    (%r11,%r8,8),%r13
1401b686d:	49 83 f9 40          	cmp    $0x40,%r9
1401b6871:	77 7d                	ja     0x1401b68f0
1401b6873:	49 8b 45 00          	mov    0x0(%r13),%rax
1401b6877:	48 83 f8 ff          	cmp    $0xffffffffffffffff,%rax
1401b687b:	74 73                	je     0x1401b68f0
1401b687d:	49 83 f9 40          	cmp    $0x40,%r9
1401b6881:	48 c7 c6 ff ff ff ff 	mov    $0xffffffffffffffff,%rsi
1401b6888:	48 89 c1             	mov    %rax,%rcx
1401b688b:	4c 89 fd             	mov    %r15,%rbp
1401b688e:	48 0f 45 f3          	cmovne %rbx,%rsi
1401b6892:	48 f7 d1             	not    %rcx
1401b6895:	4c 29 cd             	sub    %r9,%rbp
1401b6898:	f3 48 0f bc c9       	tzcnt  %rcx,%rcx
1401b689d:	4c 63 e1             	movslq %ecx,%r12
1401b68a0:	48 d3 e6             	shl    %cl,%rsi
1401b68a3:	4c 39 e5             	cmp    %r12,%rbp
1401b68a6:	72 48                	jb     0x1401b68f0
1401b68a8:	48 89 f7             	mov    %rsi,%rdi
1401b68ab:	48 21 c7             	and    %rax,%rdi
1401b68ae:	0f 85 fc 01 00 00    	jne    0x1401b6ab0
1401b68b4:	48 89 f1             	mov    %rsi,%rcx
1401b68b7:	48 09 c1             	or     %rax,%rcx
1401b68ba:	f0 49 0f b1 4d 00    	lock cmpxchg %rcx,0x0(%r13)
1401b68c0:	75 e1                	jne    0x1401b68a3
1401b68c2:	49 c1 e0 06          	shl    $0x6,%r8
1401b68c6:	4d 01 e0             	add    %r12,%r8
1401b68c9:	48 8b 84 24 a0 00 00 	mov    0xa0(%rsp),%rax
1401b68d0:	00
1401b68d1:	4c 89 00             	mov    %r8,(%rax)
1401b68d4:	b8 01 00 00 00       	mov    $0x1,%eax
1401b68d9:	48 83 c4 38          	add    $0x38,%rsp
1401b68dd:	5b                   	pop    %rbx
1401b68de:	5e                   	pop    %rsi
1401b68df:	5f                   	pop    %rdi
1401b68e0:	5d                   	pop    %rbp
1401b68e1:	41 5c                	pop    %r12
1401b68e3:	41 5d                	pop    %r13
1401b68e5:	41 5e                	pop    %r14
1401b68e7:	41 5f                	pop    %r15
1401b68e9:	c3                   	ret
1401b68ea:	66 0f 1f 44 00 00    	nopw   0x0(%rax,%rax,1)
1401b68f0:	49 8d 41 3f          	lea    0x3f(%r9),%rax
1401b68f4:	4c 89 54 24 10       	mov    %r10,0x10(%rsp)
1401b68f9:	49 89 d4             	mov    %rdx,%r12
1401b68fc:	48 c7 44 24 28 04 00 	movq   $0x4,0x28(%rsp)
1401b6903:	00 00
1401b6905:	4d 29 c4             	sub    %r8,%r12
1401b6908:	48 89 44 24 08       	mov    %rax,0x8(%rsp)
1401b690d:	4c 89 9c 24 80 00 00 	mov    %r11,0x80(%rsp)
1401b6914:	00
1401b6915:	49 8b 45 00          	mov    0x0(%r13),%rax
1401b6919:	48 85 c0             	test   %rax,%rax
1401b691c:	0f 84 ae 01 00 00    	je     0x1401b6ad0