1402546a2:	49 8b f8             	mov    %r8,%rdi
1402546a5:	4c 8b fa             	mov    %rdx,%r15
1402546a8:	48 8b f1             	mov    %rcx,%rsi
1402546ab:	48 8b c2             	mov    %rdx,%rax
1402546ae:	48 2b c1             	sub    %rcx,%rax
1402546b1:	41 bd 00 02 00 00    	mov    $0x200,%r13d
1402546b7:	eb 73                	jmp    0x14025472c
1402546b9:	48 85 ff             	test   %rdi,%rdi
1402546bc:	0f 8e eb 00 00 00    	jle    0x1402547ad
1402546c2:	4c 8b cb             	mov    %rbx,%r9
1402546c5:	4d 8b c7             	mov    %r15,%r8
1402546c8:	48 8b d6             	mov    %rsi,%rdx
1402546cb:	48 8d 4d f0          	lea    -0x10(%rbp),%rcx
1402546cf:	e8 08 0e 00 00       	call   0x1402554dc
1402546d4:	48 8b cf             	mov    %rdi,%rcx
1402546d7:	48 c1 f9 02          	sar    $0x2,%rcx
1402546db:	48 d1 ff             	sar    $1,%rdi
1402546de:	48 03 f9             	add    %rcx,%rdi
1402546e1:	49 8b cf             	mov    %r15,%rcx
1402546e4:	4c 8b 75 f8          	mov    -0x8(%rbp),%r14
1402546e8:	49 2b ce             	sub    %r14,%rcx
1402546eb:	48 83 e1 f0          	and    $0xfffffffffffffff0,%rcx
1402546ef:	4c 8b 65 f0          	mov    -0x10(%rbp),%r12
1402546f3:	49 8b c4             	mov    %r12,%rax
1402546f6:	48 2b c6             	sub    %rsi,%rax
1402546f9:	48 83 e0 f0          	and    $0xfffffffffffffff0,%rax
1402546fd:	4c 8b cb             	mov    %rbx,%r9
140254700:	4c 8b c7             	mov    %rdi,%r8
140254703:	48 3b c1             	cmp    %rcx,%rax
140254706:	7d 10                	jge    0x140254718
140254708:	49 8b d4             	mov    %r12,%rdx
14025470b:	48 8b ce             	mov    %rsi,%rcx
14025470e:	e8 6d ff ff ff       	call   0x140254680
140254713:	49 8b f6             	mov    %r14,%rsi
140254716:	eb 0e                	jmp    0x140254726
140254718:	49 8b d7             	mov    %r15,%rdx
14025471b:	49 8b ce             	mov    %r14,%rcx
14025471e:	e8 5d ff ff ff       	call   0x140254680
140254723:	4d 8b fc             	mov    %r12,%r15
140254726:	49 8b c7             	mov    %r15,%rax
140254729:	48 2b c6             	sub    %rsi,%rax
14025472c:	48 83 e0 f0          	and    $0xfffffffffffffff0,%rax
140254730:	49 3b c5             	cmp    %r13,%rax
140254733:	7f 84                	jg     0x1402546b9
140254735:	48 89 5d 30          	mov    %rbx,0x30(%rbp)
140254739:	49 3b f7             	cmp    %r15,%rsi
14025473c:	0f 84 c3 02 00 00    	je     0x140254a05
140254742:	48 8d 7e 10          	lea    0x10(%rsi),%rdi
140254746:	49 3b ff             	cmp    %r15,%rdi
140254749:	0f 84 b6 02 00 00    	je     0x140254a05
14025474f:	4c 8b ee             	mov    %rsi,%r13
140254752:	41 83 ce ff          	or     $0xffffffff,%r14d
140254756:	4c 8b e7             	mov    %rdi,%r12
140254759:	48 8b 07             	mov    (%rdi),%rax
14025475c:	48 89 45 f0          	mov    %rax,-0x10(%rbp)
140254760:	49 8b 45 18          	mov    0x18(%r13),%rax
140254764:	48 89 45 f8          	mov    %rax,-0x8(%rbp)
140254768:	48 83 27 00          	andq   $0x0,(%rdi)
14025476c:	49 83 65 18 00       	andq   $0x0,0x18(%r13)
140254771:	4c 8b c6             	mov    %rsi,%r8
140254774:	48 8d 55 f0          	lea    -0x10(%rbp),%rdx
140254778:	48 8d 4d 30          	lea    0x30(%rbp),%rcx
14025477c:	e8 7f e3 ff ff       	call   0x140252b00
140254781:	84 c0                	test   %al,%al
140254783:	0f 84 ed 01 00 00    	je     0x140254976
140254789:	48 8b df             	mov    %rdi,%rbx
14025478c:	48 3b fe             	cmp    %rsi,%rdi
14025478f:	74 14                	je     0x1402547a5
140254791:	48 8b cb             	mov    %rbx,%rcx
140254794:	48 83 eb 10          	sub    $0x10,%rbx
140254798:	48 8b d3             	mov    %rbx,%rdx
14025479b:	e8 44 1b db ff       	call   0x1400062e4
1402547a0:	48 3b de             	cmp    %rsi,%rbx
1402547a3:	75 ec                	jne    0x140254791
1402547a5:	48 8b ce             	mov    %rsi,%rcx
1402547a8:	e9 f7 01 00 00       	jmp    0x1402549a4
1402547ad:	49 8b ff             	mov    %r15,%rdi
1402547b0:	48 2b fe             	sub    %rsi,%rdi
1402547b3:	48 c1 ff 04          	sar    $0x4,%rdi
1402547b7:	48 89 7d 30          	mov    %rdi,0x30(%rbp)
1402547bb:	4c 8b ef             	mov    %rdi,%r13
1402547be:	49 d1 fd             	sar    $1,%r13
1402547c1:	41 83 ce ff          	or     $0xffffffff,%r14d
1402547c5:	4d 85 ed             	test   %r13,%r13
1402547c8:	0f 8e 99 00 00 00    	jle    0x140254867
1402547ce:	4d 8b e5             	mov    %r13,%r12
1402547d1:	49 c1 e4 04          	shl    $0x4,%r12
1402547d5:	4c 03 e6             	add    %rsi,%r12
1402547d8:	49 ff cd             	dec    %r13
1402547db:	4d 8d 64 24 f0       	lea    -0x10(%r12),%r12
1402547e0:	49 8b 04 24          	mov    (%r12),%rax
1402547e4:	48 89 45 f0          	mov    %rax,-0x10(%rbp)
1402547e8:	49 8b 44 24 08       	mov    0x8(%r12),%rax
1402547ed:	48 89 45 f8          	mov    %rax,-0x8(%rbp)
1402547f1:	49 83 24 24 00       	andq   $0x0,(%r12)
1402547f6:	49 83 64 24 08 00    	andq   $0x0,0x8(%r12)
1402547fc:	48 89 5c 24 20       	mov    %rbx,0x20(%rsp)
140254801:	4c 8d 4d f0          	lea    -0x10(%rbp),%r9
140254805:	4c 8b c7             	mov    %rdi,%r8
140254808:	49 8b d5             	mov    %r13,%rdx
14025480b:	48 8b ce             	mov    %rsi,%rcx
14025480e:	e8 25 13 00 00       	call   0x140255b38
140254813:	48 8b 4d f8          	mov    -0x8(%rbp),%rcx
140254817:	48 85 c9             	test   %rcx,%rcx
14025481a:	74 42                	je     0x14025485e
14025481c:	41 8b c6             	mov    %r14d,%eax
14025481f:	f0 0f c1 41 08       	lock xadd %eax,0x8(%rcx)
140254824:	41 03 c6             	add    %r14d,%eax
140254827:	75 35                	jne    0x14025485e
140254829:	48 8b 7d f8          	mov    -0x8(%rbp),%rdi
14025482d:	48 8b 07             	mov    (%rdi),%rax
140254830:	48 8b cf             	mov    %rdi,%rcx
140254833:	48 8b 00             	mov    (%rax),%rax
140254836:	ff 15 fc 83 8b 00    	call   *0x8b83fc(%rip)        # 0x140b0cc38
14025483c:	41 8b c6             	mov    %r14d,%eax
14025483f:	f0 0f c1 47 0c       	lock xadd %eax,0xc(%rdi)
140254844:	41 03 c6             	add    %r14d,%eax
140254847:	75 11                	jne    0x14025485a
140254849:	48 8b 4d f8          	mov    -0x8(%rbp),%rcx
14025484d:	48 8b 01             	mov    (%rcx),%rax
140254850:	48 8b 40 08          	mov    0x8(%rax),%rax
140254854:	ff 15 de 83 8b 00    	call   *0x8b83de(%rip)        # 0x140b0cc38
14025485a:	48 8b 7d 30          	mov    0x30(%rbp),%rdi
14025485e:	4d 85 ed             	test   %r13,%r13
140254861:	0f 8f 71 ff ff ff    	jg     0x1402547d8
140254867:	48 83 ff 02          	cmp    $0x2,%rdi
14025486b:	0f 8c 94 01 00 00    	jl     0x140254a05
140254871:	49 83 c7 f8          	add    $0xfffffffffffffff8,%r15
140254875:	49 c7 c5 f8 ff ff ff 	mov    $0xfffffffffffffff8,%r13
14025487c:	4c 2b ee             	sub    %rsi,%r13
14025487f:	41 bc 08 00 00 00    	mov    $0x8,%r12d
140254885:	4c 2b e6             	sub    %rsi,%r12
140254888:	49 8b 47 f8          	mov    -0x8(%r15),%rax
14025488c:	48 89 45 f0          	mov    %rax,-0x10(%rbp)
140254890:	49 8b 07             	mov    (%r15),%rax
140254893:	48 89 45 f8          	mov    %rax,-0x8(%rbp)
140254897:	49 83 67 f8 00       	andq   $0x0,-0x8(%r15)
14025489c:	49 83 27 00          	andq   $0x0,(%r15)
1402548a0:	48 8b 06             	mov    (%rsi),%rax
1402548a3:	48 8b 4e 08          	mov    0x8(%rsi),%rcx
1402548a7:	48 83 26 00          	andq   $0x0,(%rsi)
1402548ab:	48 83 66 08 00       	andq   $0x0,0x8(%rsi)
1402548b0:	49 89 47 f8          	mov    %rax,-0x8(%r15)
1402548b4:	49 8b 3f             	mov    (%r15),%rdi
1402548b7:	49 89 0f             	mov    %rcx,(%r15)
1402548ba:	48 85 ff             	test   %rdi,%rdi
1402548bd:	74 39                	je     0x1402548f8
1402548bf:	41 8b c6             	mov    %r14d,%eax
1402548c2:	f0 0f c1 47 08       	lock xadd %eax,0x8(%rdi)
1402548c7:	41 03 c6             	add    %r14d,%eax
1402548ca:	75 2c                	jne    0x1402548f8
1402548cc:	48 8b 07             	mov    (%rdi),%rax
1402548cf:	48 8b cf             	mov    %rdi,%rcx
1402548d2:	48 8b 00             	mov    (%rax),%rax
1402548d5:	ff 15 5d 83 8b 00    	call   *0x8b835d(%rip)        # 0x140b0cc38
1402548db:	41 8b c6             	mov    %r14d,%eax
1402548de:	f0 0f c1 47 0c       	lock xadd %eax,0xc(%rdi)
1402548e3:	41 03 c6             	add    %r14d,%eax
1402548e6:	75 10                	jne    0x1402548f8
1402548e8:	48 8b 07             	mov    (%rdi),%rax
1402548eb:	48 8b cf             	mov    %rdi,%rcx
1402548ee:	48 8b 40 08          	mov    0x8(%rax),%rax
1402548f2:	ff 15 40 83 8b 00    	call   *0x8b8340(%rip)        # 0x140b0cc38
1402548f8:	4f 8d 04 2f          	lea    (%r15,%r13,1),%r8
1402548fc:	49 c1 f8 04          	sar    $0x4,%r8
140254900:	48 89 5c 24 20       	mov    %rbx,0x20(%rsp)
140254905:	4c 8d 4d f0          	lea    -0x10(%rbp),%r9
140254909:	33 d2                	xor    %edx,%edx
14025490b:	48 8b ce             	mov    %rsi,%rcx
14025490e:	e8 25 12 00 00       	call   0x140255b38
140254913:	90                   	nop
140254914:	48 8b 4d f8          	mov    -0x8(%rbp),%rcx
140254918:	48 85 c9             	test   %rcx,%rcx
14025491b:	74 3e                	je     0x14025495b
14025491d:	41 8b c6             	mov    %r14d,%eax
140254920:	f0 0f c1 41 08       	lock xadd %eax,0x8(%rcx)
140254925:	41 03 c6             	add    %r14d,%eax
140254928:	75 31                	jne    0x14025495b
14025492a:	48 8b 7d f8          	mov    -0x8(%rbp),%rdi
14025492e:	48 8b 07             	mov    (%rdi),%rax
140254931:	48 8b cf             	mov    %rdi,%rcx
140254934:	48 8b 00             	mov    (%rax),%rax
140254937:	ff 15 fb 82 8b 00    	call   *0x8b82fb(%rip)        # 0x140b0cc38
14025493d:	41 8b c6             	mov    %r14d,%eax
140254940:	f0 0f c1 47 0c       	lock xadd %eax,0xc(%rdi)
140254945:	41 03 c6             	add    %r14d,%eax
140254948:	75 11                	jne    0x14025495b
14025494a:	48 8b 4d f8          	mov    -0x8(%rbp),%rcx
14025494e:	48 8b 01             	mov    (%rcx),%rax
140254951:	48 8b 40 08          	mov    0x8(%rax),%rax
140254955:	ff 15 dd 82 8b 00    	call   *0x8b82dd(%rip)        # 0x140b0cc38
14025495b:	49 83 ef 10          	sub    $0x10,%r15
14025495f:	4b 8d 04 27          	lea    (%r15,%r12,1),%rax
140254963:	48 83 e0 f0          	and    $0xfffffffffffffff0,%rax
140254967:	48 83 f8 20          	cmp    $0x20,%rax
14025496b:	0f 8d 17 ff ff ff    	jge    0x140254888
140254971:	e9 8f 00 00 00       	jmp    0x140254a05
140254976:	49 8b dd             	mov    %r13,%rbx
140254979:	4d 8b c5             	mov    %r13,%r8
14025497c:	eb 12                	jmp    0x140254990
14025497e:	48 8b d3             	mov    %rbx,%rdx
140254981:	e8 5e 19 db ff       	call   0x1400062e4
140254986:	4c 8b e3             	mov    %rbx,%r12
140254989:	48 83 eb 10          	sub    $0x10,%rbx
14025498d:	4c 8b c3             	mov    %rbx,%r8
140254990:	48 8d 55 f0          	lea    -0x10(%rbp),%rdx
140254994:	48 8d 4d 30          	lea    0x30(%rbp),%rcx
140254998:	e8 63 e1 ff ff       	call   0x140252b00
14025499d:	49 8b cc             	mov    %r12,%rcx
1402549a0:	84 c0                	test   %al,%al
1402549a2:	75 da                	jne    0x14025497e
1402549a4:	48 8d 55 f0          	lea    -0x10(%rbp),%rdx
1402549a8:	e8 37 19 db ff       	call   0x1400062e4
1402549ad:	48 8b 4d f8          	mov    -0x8(%rbp),%rcx
1402549b1:	48 85 c9             	test   %rcx,%rcx
1402549b4:	74 3e                	je     0x1402549f4
1402549b6:	41 8b c6             	mov    %r14d,%eax
1402549b9:	f0 0f c1 41 08       	lock xadd %eax,0x8(%rcx)
1402549be:	41 03 c6             	add    %r14d,%eax
1402549c1:	75 31                	jne    0x1402549f4
1402549c3:	48 8b 5d f8          	mov    -0x8(%rbp),%rbx
1402549c7:	48 8b 03             	mov    (%rbx),%rax
1402549ca:	48 8b cb             	mov    %rbx,%rcx
1402549cd:	48 8b 00             	mov    (%rax),%rax
1402549d0:	ff 15 62 82 8b 00    	call   *0x8b8262(%rip)        # 0x140b0cc38
1402549d6:	41 8b c6             	mov    %r14d,%eax
1402549d9:	f0 0f c1 43 0c       	lock xadd %eax,0xc(%rbx)
1402549de:	41 03 c6             	add    %r14d,%eax
1402549e1:	75 11                	jne    0x1402549f4
1402549e3:	48 8b 4d f8          	mov    -0x8(%rbp),%rcx
1402549e7:	48 8b 01             	mov    (%rcx),%rax
1402549ea:	48 8b 40 08          	mov    0x8(%rax),%rax
1402549ee:	ff 15 44 82 8b 00    	call   *0x8b8244(%rip)        # 0x140b0cc38
1402549f4:	48 83 c7 10          	add    $0x10,%rdi
1402549f8:	49 83 c5 10          	add    $0x10,%r13
1402549fc:	49 3b ff             	cmp    %r15,%rdi
1402549ff:	0f 85 51 fd ff ff    	jne    0x140254756
140254a05:	4c 8d 5c 24 40       	lea    0x40(%rsp),%r11
140254a0a:	49 8b 5b 38          	mov    0x38(%r11),%rbx
140254a0e:	49 8b 73 40          	mov    0x40(%r11),%rsi
140254a12:	49 8b 7b 48          	mov    0x48(%r11),%rdi
140254a16:	49 8b e3             	mov    %r11,%rsp
140254a19:	41 5f                	pop    %r15
140254a1b:	41 5e                	pop    %r14
140254a1d:	41 5d                	pop    %r13
140254a1f:	41 5c                	pop    %r12
140254a21:	5d                   	pop    %rbp
140254a22:	c3                   	ret
140254a23:	90                   	nop
140254a24:	4c 89 4c 24 20       	mov    %r9,0x20(%rsp)
140254a29:	48 89 54 24 10       	mov    %rdx,0x10(%rsp)
140254a2e:	48 89 4c 24 08       	mov    %rcx,0x8(%rsp)
140254a33:	53                   	push   %rbx
140254a34:	56                   	push   %rsi
140254a35:	57                   	push   %rdi
140254a36:	41 54                	push   %r12
140254a38:	41 55                	push   %r13
140254a3a:	41 56                	push   %r14
140254a3c:	41 57                	push   %r15
140254a3e:	48 83 ec 40          	sub    $0x40,%rsp
140254a42:	4d 8b f1             	mov    %r9,%r14
140254a45:	4d 8b e8             	mov    %r8,%r13
140254a48:	48 8b da             	mov    %rdx,%rbx
140254a4b:	4c 8d 49 08          	lea    0x8(%rcx),%r9
140254a4f:	4c 89 4c 24 20       	mov    %r9,0x20(%rsp)
140254a54:	48 8b 31             	mov    (%rcx),%rsi
140254a57:	49 8b 39             	mov    (%r9),%rdi
140254a5a:	48 89 7c 24 28       	mov    %rdi,0x28(%rsp)
140254a5f:	48 8b 51 10          	mov    0x10(%rcx),%rdx
140254a63:	48 8b c2             	mov    %rdx,%rax
140254a66:	48 2b c7             	sub    %rdi,%rax
140254a69:	48 c1 f8 04          	sar    $0x4,%rax
140254a6d:	45 33 c0             	xor    %r8d,%r8d
140254a70:	4d 85 f6             	test   %r14,%r14
140254a73:	0f 84 c2 01 00 00    	je     0x140254c3b
140254a79:	4c 3b f0             	cmp    %rax,%r14
140254a7c:	0f 86 c9 01 00 00    	jbe    0x140254c4b
140254a82:	48 8b cf             	mov    %rdi,%rcx
140254a85:	48 2b ce             	sub    %rsi,%rcx
140254a88:	48 c1 f9 04          	sar    $0x4,%rcx
140254a8c:	49 bf ff ff ff ff ff 	movabs $0xfffffffffffffff,%r15
140254a93:	ff ff 0f
140254a96:	49 8b c7             	mov    %r15,%rax
140254a99:	48 2b c1             	sub    %rcx,%rax
140254a9c:	4c 3b f0             	cmp    %rax,%r14
140254a9f:	0f 87 76 03 00 00    	ja     0x140254e1b
140254aa5:	4d 8d 04 0e          	lea    (%r14,%rcx,1),%r8
140254aa9:	4c 89 44 24 20       	mov    %r8,0x20(%rsp)
140254aae:	48 2b d6             	sub    %rsi,%rdx
140254ab1:	48 c1 fa 04          	sar    $0x4,%rdx
140254ab5:	48 8b ca             	mov    %rdx,%rcx
140254ab8:	48 d1 e9             	shr    $1,%rcx
140254abb:	49 8b c7             	mov    %r15,%rax
140254abe:	48 2b c1             	sub    %rcx,%rax
140254ac1:	48 3b d0             	cmp    %rax,%rdx
140254ac4:	77 0b                	ja     0x140254ad1
140254ac6:	4c 8d 3c 0a          	lea    (%rdx,%rcx,1),%r15
140254aca:	4d 3b f8             	cmp    %r8,%r15
140254acd:	4d 0f 42 f8          	cmovb  %r8,%r15
140254ad1:	4c 89 bc 24 98 00 00 	mov    %r15,0x98(%rsp)
140254ad8:	00
140254ad9:	4c 89 bc 24 88 00 00 	mov    %r15,0x88(%rsp)
140254ae0:	00
140254ae1:	48 8d 94 24 88 00 00 	lea    0x88(%rsp),%rdx
140254ae8:	00
140254ae9:	e8 ea d7 dc ff       	call   0x1400222d8
140254aee:	48 8b d0             	mov    %rax,%rdx
140254af1:	48 89 44 24 38       	mov    %rax,0x38(%rsp)
140254af6:	48 8b c3             	mov    %rbx,%rax
140254af9:	48 2b c6             	sub    %rsi,%rax
140254afc:	48 c1 f8 04          	sar    $0x4,%rax
140254b00:	49 8d 0c 06          	lea    (%r14,%rax,1),%rcx
140254b04:	48 c1 e1 04          	shl    $0x4,%rcx
140254b08:	48 89 4c 24 28       	mov    %rcx,0x28(%rsp)
140254b0d:	48 03 ca             	add    %rdx,%rcx
140254b10:	48 89 4c 24 30       	mov    %rcx,0x30(%rsp)
140254b15:	48 03 c0             	add    %rax,%rax
140254b18:	4c 8d 24 c2          	lea    (%rdx,%rax,8),%r12
140254b1c:	4d 8b de             	mov    %r14,%r11
140254b1f:	4d 8b cc             	mov    %r12,%r9
140254b22:	4d 8d 45 08          	lea    0x8(%r13),%r8
140254b26:	4d 8b d4             	mov    %r12,%r10
140254b29:	4d 2b d5             	sub    %r13,%r10
140254b2c:	45 33 ed             	xor    %r13d,%r13d
140254b2f:	4d 89 29             	mov    %r13,(%r9)
140254b32:	4f 89 2c 02          	mov    %r13,(%r10,%r8,1)
140254b36:	4d 39 28             	cmp    %r13,(%r8)
140254b39:	74 12                	je     0x140254b4d
140254b3b:	49 8b 40 f8          	mov    -0x8(%r8),%rax
140254b3f:	49 89 01             	mov    %rax,(%r9)
140254b42:	49 8b 00             	mov    (%r8),%rax
140254b45:	4b 89 04 02          	mov    %rax,(%r10,%r8,1)
140254b49:	f0 ff 40 0c          	lock incl 0xc(%rax)
140254b4d:	49 83 c1 10          	add    $0x10,%r9
140254b51:	49 83 c0 10          	add    $0x10,%r8
140254b55:	49 83 eb 01          	sub    $0x1,%r11
140254b59:	75 d4                	jne    0x140254b2f
140254b5b:	4c 89 a4 24 88 00 00 	mov    %r12,0x88(%rsp)
140254b62:	00
140254b63:	49 83 fe 01          	cmp    $0x1,%r14
140254b67:	75 43                	jne    0x140254bac
140254b69:	48 3b df             	cmp    %rdi,%rbx
140254b6c:	75 3e                	jne    0x140254bac
140254b6e:	48 3b f7             	cmp    %rdi,%rsi
140254b71:	0f 84 af 00 00 00    	je     0x140254c26
140254b77:	48 8b ca             	mov    %rdx,%rcx
140254b7a:	48 2b f2             	sub    %rdx,%rsi
140254b7d:	4c 89 29             	mov    %r13,(%rcx)
140254b80:	4c 89 69 08          	mov    %r13,0x8(%rcx)
140254b84:	48 8b 04 0e          	mov    (%rsi,%rcx,1),%rax