140acb63b:	45 2b f0             	sub    %r8d,%r14d
140acb63e:	83 ff 01             	cmp    $0x1,%edi
140acb641:	0f 8c 89 00 00 00    	jl     0x140acb6d0
140acb647:	41 8a c3             	mov    %r11b,%al
140acb64a:	41 2b ea             	sub    %r10d,%ebp
140acb64d:	41 8b ca             	mov    %r10d,%ecx
140acb650:	ff cf                	dec    %edi
140acb652:	d2 e0                	shl    %cl,%al
140acb654:	88 06                	mov    %al,(%rsi)
140acb656:	8b c5                	mov    %ebp,%eax
140acb658:	83 e0 f8             	and    $0xfffffff8,%eax
140acb65b:	48 ff c6             	inc    %rsi
140acb65e:	44 3b f0             	cmp    %eax,%r14d
140acb661:	7c 6d                	jl     0x140acb6d0
140acb663:	44 2b f0             	sub    %eax,%r14d
140acb666:	83 fd 30             	cmp    $0x30,%ebp
140acb669:	7e 44                	jle    0x140acb6af
140acb66b:	44 8b fd             	mov    %ebp,%r15d
140acb66e:	41 c1 ff 03          	sar    $0x3,%r15d
140acb672:	41 3b ff             	cmp    %r15d,%edi
140acb675:	7c 59                	jl     0x140acb6d0
140acb677:	49 63 df             	movslq %r15d,%rbx
140acb67a:	33 d2                	xor    %edx,%edx
140acb67c:	4c 8b c3             	mov    %rbx,%r8
140acb67f:	48 8b ce             	mov    %rsi,%rcx
140acb682:	e8 e5 4d 02 00       	call   0x140af046c
140acb687:	48 03 f3             	add    %rbx,%rsi
140acb68a:	4c 8d 0d bf 37 0e 00 	lea    0xe37bf(%rip),%r9        # 0x140baee50
140acb691:	41 2b ff             	sub    %r15d,%edi
140acb694:	41 b8 08 00 00 00    	mov    $0x8,%r8d
140acb69a:	83 e5 07             	and    $0x7,%ebp
140acb69d:	eb 15                	jmp    0x140acb6b4
140acb69f:	83 ff 01             	cmp    $0x1,%edi
140acb6a2:	7c 10                	jl     0x140acb6b4
140acb6a4:	c6 06 00             	movb   $0x0,(%rsi)
140acb6a7:	ff cf                	dec    %edi
140acb6a9:	48 ff c6             	inc    %rsi
140acb6ac:	41 2b e8             	sub    %r8d,%ebp
140acb6af:	41 3b e8             	cmp    %r8d,%ebp
140acb6b2:	7d eb                	jge    0x140acb69f
140acb6b4:	45 8b d0             	mov    %r8d,%r10d
140acb6b7:	44 2b d5             	sub    %ebp,%r10d
140acb6ba:	45 32 db             	xor    %r11b,%r11b
140acb6bd:	eb 08                	jmp    0x140acb6c7
140acb6bf:	44 2b d5             	sub    %ebp,%r10d
140acb6c2:	8b cd                	mov    %ebp,%ecx
140acb6c4:	41 d2 e3             	shl    %cl,%r11b
140acb6c7:	45 85 e4             	test   %r12d,%r12d
140acb6ca:	0f 8f 72 fe ff ff    	jg     0x140acb542
140acb6d0:	45 3b d0             	cmp    %r8d,%r10d
140acb6d3:	74 12                	je     0x140acb6e7
140acb6d5:	85 ff                	test   %edi,%edi
140acb6d7:	7e 1f                	jle    0x140acb6f8
140acb6d9:	41 8b ca             	mov    %r10d,%ecx
140acb6dc:	41 d2 e3             	shl    %cl,%r11b
140acb6df:	44 88 1e             	mov    %r11b,(%rsi)
140acb6e2:	48 ff c6             	inc    %rsi
140acb6e5:	ff cf                	dec    %edi
140acb6e7:	85 ff                	test   %edi,%edi
140acb6e9:	7e 0d                	jle    0x140acb6f8
140acb6eb:	4c 63 c7             	movslq %edi,%r8
140acb6ee:	33 d2                	xor    %edx,%edx
140acb6f0:	48 8b ce             	mov    %rsi,%rcx
140acb6f3:	e8 74 4d 02 00       	call   0x140af046c
140acb6f8:	48 8b 5c 24 50       	mov    0x50(%rsp),%rbx
140acb6fd:	48 8b 6c 24 58       	mov    0x58(%rsp),%rbp
140acb702:	48 8b 74 24 60       	mov    0x60(%rsp),%rsi
140acb707:	48 83 c4 20          	add    $0x20,%rsp
140acb70b:	41 5f                	pop    %r15
140acb70d:	41 5e                	pop    %r14
140acb70f:	41 5d                	pop    %r13
140acb711:	41 5c                	pop    %r12
140acb713:	5f                   	pop    %rdi
140acb714:	c3                   	ret
140acb715:	90                   	nop
140acb716:	90                   	nop
140acb717:	90                   	nop
140acb718:	48 85 c9             	test   %rcx,%rcx
140acb71b:	74 3e                	je     0x140acb75b
140acb71d:	53                   	push   %rbx
140acb71e:	48 83 ec 20          	sub    $0x20,%rsp
140acb722:	48 8b d9             	mov    %rcx,%rbx
140acb725:	48 8b 49 28          	mov    0x28(%rcx),%rcx
140acb729:	ff 15 91 11 04 00    	call   *0x41191(%rip)        # 0x140b0c8c0
140acb72f:	48 8b 4b 38          	mov    0x38(%rbx),%rcx
140acb733:	ff 15 87 11 04 00    	call   *0x41187(%rip)        # 0x140b0c8c0
140acb739:	48 8b 4b 58          	mov    0x58(%rbx),%rcx
140acb73d:	ff 15 7d 11 04 00    	call   *0x4117d(%rip)        # 0x140b0c8c0
140acb743:	48 8b 4b 60          	mov    0x60(%rbx),%rcx
140acb747:	ff 15 73 11 04 00    	call   *0x41173(%rip)        # 0x140b0c8c0
140acb74d:	48 8b cb             	mov    %rbx,%rcx
140acb750:	ff 15 6a 11 04 00    	call   *0x4116a(%rip)        # 0x140b0c8c0
140acb756:	48 83 c4 20          	add    $0x20,%rsp
140acb75a:	5b                   	pop    %rbx
140acb75b:	c3                   	ret
140acb75c:	48 89 5c 24 08       	mov    %rbx,0x8(%rsp)
140acb761:	44 8b 41 20          	mov    0x20(%rcx),%r8d
140acb765:	33 db                	xor    %ebx,%ebx
140acb767:	44 8b 59 0c          	mov    0xc(%rcx),%r11d
140acb76b:	4c 8b d1             	mov    %rcx,%r10
140acb76e:	4c 8b 49 18          	mov    0x18(%rcx),%r9
140acb772:	41 83 f8 01          	cmp    $0x1,%r8d
140acb776:	0f 82 89 00 00 00    	jb     0x140acb805
140acb77c:	41 0f b6 01          	movzbl (%r9),%eax
140acb780:	41 8b cb             	mov    %r11d,%ecx
140acb783:	d3 e0                	shl    %cl,%eax
140acb785:	41 f7 db             	neg    %r11d
140acb788:	0f b6 d0             	movzbl %al,%edx
140acb78b:	84 c0                	test   %al,%al
140acb78d:	75 18                	jne    0x140acb7a7
140acb78f:	41 83 f8 02          	cmp    $0x2,%r8d
140acb793:	72 70                	jb     0x140acb805
140acb795:	49 ff c1             	inc    %r9
140acb798:	41 ff c8             	dec    %r8d
140acb79b:	41 83 c3 08          	add    $0x8,%r11d
140acb79f:	41 0f b6 11          	movzbl (%r9),%edx
140acb7a3:	85 d2                	test   %edx,%edx
140acb7a5:	74 e8                	je     0x140acb78f
140acb7a7:	b8 08 00 00 00       	mov    $0x8,%eax
140acb7ac:	8b c8                	mov    %eax,%ecx
140acb7ae:	ff c8                	dec    %eax
140acb7b0:	d1 fa                	sar    $1,%edx
140acb7b2:	75 f8                	jne    0x140acb7ac
140acb7b4:	41 03 c3             	add    %r11d,%eax
140acb7b7:	83 f8 0b             	cmp    $0xb,%eax
140acb7ba:	7c 49                	jl     0x140acb805
140acb7bc:	83 f9 08             	cmp    $0x8,%ecx
140acb7bf:	75 0d                	jne    0x140acb7ce
140acb7c1:	45 85 c0             	test   %r8d,%r8d
140acb7c4:	74 3f                	je     0x140acb805
140acb7c6:	49 ff c1             	inc    %r9
140acb7c9:	41 ff c8             	dec    %r8d
140acb7cc:	33 c9                	xor    %ecx,%ecx
140acb7ce:	41 83 3a 03          	cmpl   $0x3,(%r10)
140acb7d2:	75 21                	jne    0x140acb7f5
140acb7d4:	ba 80 00 00 00       	mov    $0x80,%edx
140acb7d9:	d3 fa                	sar    %cl,%edx
140acb7db:	41 84 11             	test   %dl,(%r9)
140acb7de:	0f 94 c3             	sete   %bl
140acb7e1:	ff c1                	inc    %ecx
140acb7e3:	83 f9 08             	cmp    $0x8,%ecx
140acb7e6:	75 0d                	jne    0x140acb7f5
140acb7e8:	45 85 c0             	test   %r8d,%r8d
140acb7eb:	74 18                	je     0x140acb805
140acb7ed:	49 ff c1             	inc    %r9
140acb7f0:	41 ff c8             	dec    %r8d
140acb7f3:	33 c9                	xor    %ecx,%ecx
140acb7f5:	4d 89 4a 18          	mov    %r9,0x18(%r10)
140acb7f9:	8b c3                	mov    %ebx,%eax
140acb7fb:	45 89 42 20          	mov    %r8d,0x20(%r10)
140acb7ff:	41 89 4a 0c          	mov    %ecx,0xc(%r10)
140acb803:	eb 03                	jmp    0x140acb808
140acb805:	83 c8 ff             	or     $0xffffffff,%eax
140acb808:	48 8b 5c 24 08       	mov    0x8(%rsp),%rbx
140acb80d:	c3                   	ret
140acb80e:	90                   	nop
140acb80f:	90                   	nop
140acb810:	48 89 5c 24 20       	mov    %rbx,0x20(%rsp)
140acb815:	44 89 44 24 18       	mov    %r8d,0x18(%rsp)
140acb81a:	48 89 54 24 10       	mov    %rdx,0x10(%rsp)
140acb81f:	55                   	push   %rbp
140acb820:	56                   	push   %rsi
140acb821:	57                   	push   %rdi
140acb822:	41 54                	push   %r12
140acb824:	41 55                	push   %r13
140acb826:	41 56                	push   %r14
140acb828:	41 57                	push   %r15
140acb82a:	44 8b 51 20          	mov    0x20(%rcx),%r10d
140acb82e:	45 33 c0             	xor    %r8d,%r8d
140acb831:	44 0f b7 69 04       	movzwl 0x4(%rcx),%r13d
140acb836:	4c 8b d9             	mov    %rcx,%r11
140acb839:	48 8b 59 18          	mov    0x18(%rcx),%rbx
140acb83d:	41 bf 01 00 00 00    	mov    $0x1,%r15d
140acb843:	41 0f b7 f0          	movzwl %r8w,%esi
140acb847:	45 0f b7 e0          	movzwl %r8w,%r12d
140acb84b:	45 85 d2             	test   %r10d,%r10d
140acb84e:	0f 84 03 01 00 00    	je     0x140acb957
140acb854:	0f b6 3b             	movzbl (%rbx),%edi
140acb857:	41 8d 57 07          	lea    0x7(%r15),%edx
140acb85b:	44 8b ca             	mov    %edx,%r9d
140acb85e:	44 2b 49 0c          	sub    0xc(%rcx),%r9d
140acb862:	66 45 3b c5          	cmp    %r13w,%r8w
140acb866:	0f 83 c7 00 00 00    	jae    0x140acb933
140acb86c:	41 8b c7             	mov    %r15d,%eax
140acb86f:	48 8d 0d ca 35 0e 00 	lea    0xe35ca(%rip),%rcx        # 0x140baee40
140acb876:	45 8b f0             	mov    %r8d,%r14d
140acb879:	48 8b 04 c1          	mov    (%rcx,%rax,8),%rax
140acb87d:	48 89 44 24 40       	mov    %rax,0x40(%rsp)
140acb882:	48 8b e8             	mov    %rax,%rbp
140acb885:	44 3b ca             	cmp    %edx,%r9d
140acb888:	7d 20                	jge    0x140acb8aa
140acb88a:	45 85 d2             	test   %r10d,%r10d
140acb88d:	0f 84 c4 00 00 00    	je     0x140acb957
140acb893:	48 ff c3             	inc    %rbx
140acb896:	c1 e7 08             	shl    $0x8,%edi
140acb899:	41 83 fa 01          	cmp    $0x1,%r10d
140acb89d:	74 05                	je     0x140acb8a4
140acb89f:	0f b6 03             	movzbl (%rbx),%eax
140acb8a2:	0b f8                	or     %eax,%edi
140acb8a4:	41 ff ca             	dec    %r10d
140acb8a7:	44 03 ca             	add    %edx,%r9d
140acb8aa:	41 8d 89 f8 00 00 00 	lea    0xf8(%r9),%ecx
140acb8b1:	8b c7                	mov    %edi,%eax
140acb8b3:	48 d3 e8             	shr    %cl,%rax
140acb8b6:	0f b6 c8             	movzbl %al,%ecx
140acb8b9:	0f be 44 4d 01       	movsbl 0x1(%rbp,%rcx,2),%eax
140acb8be:	44 0f be 44 4d 00    	movsbl 0x0(%rbp,%rcx,2),%r8d
140acb8c4:	44 2b c8             	sub    %eax,%r9d
140acb8c7:	45 85 c0             	test   %r8d,%r8d
140acb8ca:	79 19                	jns    0x140acb8e5
140acb8cc:	41 83 f8 bf          	cmp    $0xffffffbf,%r8d
140acb8d0:	0f 8e 81 00 00 00    	jle    0x140acb957
140acb8d6:	41 f7 d8             	neg    %r8d
140acb8d9:	49 63 c0             	movslq %r8d,%rax
140acb8dc:	48 c1 e0 09          	shl    $0x9,%rax
140acb8e0:	48 03 e8             	add    %rax,%rbp
140acb8e3:	eb a0                	jmp    0x140acb885
140acb8e5:	41 83 f8 3f          	cmp    $0x3f,%r8d
140acb8e9:	7e 11                	jle    0x140acb8fc
140acb8eb:	41 8d 40 c1          	lea    -0x3f(%r8),%eax
140acb8ef:	c1 e0 06             	shl    $0x6,%eax
140acb8f2:	44 03 f0             	add    %eax,%r14d
140acb8f5:	48 8b 44 24 40       	mov    0x40(%rsp),%rax
140acb8fa:	eb 86                	jmp    0x140acb882
140acb8fc:	bd 01 00 00 00       	mov    $0x1,%ebp
140acb901:	0f b7 c6             	movzwl %si,%eax
140acb904:	44 33 fd             	xor    %ebp,%r15d
140acb907:	3b 44 24 50          	cmp    0x50(%rsp),%eax
140acb90b:	73 4a                	jae    0x140acb957
140acb90d:	48 8b 4c 24 48       	mov    0x48(%rsp),%rcx
140acb912:	66 45 03 c6          	add    %r14w,%r8w
140acb916:	0f b7 c6             	movzwl %si,%eax
140acb919:	66 45 03 e0          	add    %r8w,%r12w
140acb91d:	66 03 f5             	add    %bp,%si
140acb920:	66 44 89 04 41       	mov    %r8w,(%rcx,%rax,2)
140acb925:	44 8d 45 ff          	lea    -0x1(%rbp),%r8d
140acb929:	66 45 3b e5          	cmp    %r13w,%r12w
140acb92d:	0f 82 39 ff ff ff    	jb     0x140acb86c
140acb933:	44 3b ca             	cmp    %edx,%r9d
140acb936:	7e 0b                	jle    0x140acb943
140acb938:	41 ff c2             	inc    %r10d
140acb93b:	ba 10 00 00 00       	mov    $0x10,%edx
140acb940:	48 ff cb             	dec    %rbx
140acb943:	41 2b d1             	sub    %r9d,%edx
140acb946:	0f b7 c6             	movzwl %si,%eax
140acb949:	41 89 53 0c          	mov    %edx,0xc(%r11)
140acb94d:	49 89 5b 18          	mov    %rbx,0x18(%r11)
140acb951:	45 89 53 20          	mov    %r10d,0x20(%r11)
140acb955:	eb 03                	jmp    0x140acb95a
140acb957:	83 c8 ff             	or     $0xffffffff,%eax
140acb95a:	48 8b 5c 24 58       	mov    0x58(%rsp),%rbx
140acb95f:	41 5f                	pop    %r15
140acb961:	41 5e                	pop    %r14
140acb963:	41 5d                	pop    %r13
140acb965:	41 5c                	pop    %r12
140acb967:	5f                   	pop    %rdi
140acb968:	5e                   	pop    %rsi
140acb969:	5d                   	pop    %rbp
140acb96a:	c3                   	ret
140acb96b:	90                   	nop
140acb96c:	89 54 24 10          	mov    %edx,0x10(%rsp)
140acb970:	53                   	push   %rbx
140acb971:	55                   	push   %rbp
140acb972:	56                   	push   %rsi
140acb973:	57                   	push   %rdi
140acb974:	41 54                	push   %r12
140acb976:	41 55                	push   %r13
140acb978:	41 56                	push   %r14
140acb97a:	41 57                	push   %r15
140acb97c:	48 83 ec 28          	sub    $0x28,%rsp
140acb980:	44 8b 61 30          	mov    0x30(%rcx),%r12d
140acb984:	45 33 db             	xor    %r11d,%r11d
140acb987:	83 a4 24 80 00 00 00 	andl   $0x0,0x80(%rsp)
140acb98e:	00
140acb98f:	83 cb ff             	or     $0xffffffff,%ebx
140acb992:	48 8b 41 28          	mov    0x28(%rcx),%rax
140acb996:	45 33 c0             	xor    %r8d,%r8d
140acb999:	c7 44 24 78 01 00 00 	movl   $0x1,0x78(%rsp)
140acb9a0:	00
140acb9a1:	48 8b d1             	mov    %rcx,%rdx
140acb9a4:	44 89 5c 24 70       	mov    %r11d,0x70(%rsp)
140acb9a9:	48 89 44 24 10       	mov    %rax,0x10(%rsp)
140acb9ae:	44 89 64 24 08       	mov    %r12d,0x8(%rsp)
140acb9b3:	41 81 fc ff ff ff 7f 	cmp    $0x7fffffff,%r12d
140acb9ba:	0f 87 80 04 00 00    	ja     0x140acbe40
140acb9c0:	48 8b 49 38          	mov    0x38(%rcx),%rcx
140acb9c4:	8b 72 40             	mov    0x40(%rdx),%esi
140acb9c7:	48 89 4c 24 18       	mov    %rcx,0x18(%rsp)
140acb9cc:	8b 4a 04             	mov    0x4(%rdx),%ecx
140acb9cf:	89 4c 24 04          	mov    %ecx,0x4(%rsp)
140acb9d3:	89 34 24             	mov    %esi,(%rsp)
140acb9d6:	45 85 e4             	test   %r12d,%r12d
140acb9d9:	0f 84 61 04 00 00    	je     0x140acbe40
140acb9df:	85 f6                	test   %esi,%esi
140acb9e1:	0f 84 59 04 00 00    	je     0x140acbe40
140acb9e7:	8b 6a 20             	mov    0x20(%rdx),%ebp
140acb9ea:	44 0f b7 10          	movzwl (%rax),%r10d
140acb9ee:	4c 8b 6a 18          	mov    0x18(%rdx),%r13
140acb9f2:	85 ed                	test   %ebp,%ebp
140acb9f4:	0f 84 46 04 00 00    	je     0x140acbe40
140acb9fa:	45 0f b6 7d 00       	movzbl 0x0(%r13),%r15d
140acb9ff:	44 8d 4b 09          	lea    0x9(%rbx),%r9d
140acba03:	41 8b f9             	mov    %r9d,%edi
140acba06:	2b 7a 0c             	sub    0xc(%rdx),%edi
140acba09:	3b cb                	cmp    %ebx,%ecx
140acba0b:	0f 8e f8 03 00 00    	jle    0x140acbe09
140acba11:	c7 84 24 88 00 00 00 	movl   $0x1,0x88(%rsp)
140acba18:	01 00 00 00
140acba1c:	89 5c 24 0c          	mov    %ebx,0xc(%rsp)
140acba20:	48 8d 35 d9 45 53 ff 	lea    -0xacba27(%rip),%rsi        # 0x140000000
140acba27:	44 8b f3             	mov    %ebx,%r14d
140acba2a:	41 3b f9             	cmp    %r9d,%edi
140acba2d:	7d 21                	jge    0x140acba50
140acba2f:	85 ed                	test   %ebp,%ebp
140acba31:	0f 84 09 04 00 00    	je     0x140acbe40
140acba37:	49 ff c5             	inc    %r13
140acba3a:	41 c1 e7 08          	shl    $0x8,%r15d
140acba3e:	83 fd 01             	cmp    $0x1,%ebp
140acba41:	74 08                	je     0x140acba4b
140acba43:	41 0f b6 45 00       	movzbl 0x0(%r13),%eax
140acba48:	44 0b f8             	or     %eax,%r15d
140acba4b:	ff cd                	dec    %ebp
140acba4d:	41 03 f9             	add    %r9d,%edi
140acba50:	8d 8f f8 00 00 00    	lea    0xf8(%rdi),%ecx
140acba56:	41 8b c7             	mov    %r15d,%eax
140acba59:	48 d3 e8             	shr    %cl,%rax
140acba5c:	0f b6 c8             	movzbl %al,%ecx
140acba5f:	0f be 84 4e a1 ee ba 	movsbl 0xbaeea1(%rsi,%rcx,2),%eax
140acba66:	00
140acba67:	4c 0f be 9c 4e a0 ee 	movsbq 0xbaeea0(%rsi,%rcx,2),%r11
140acba6e:	ba 00
140acba70:	2b f8                	sub    %eax,%edi
140acba72:	41 83 fb c0          	cmp    $0xffffffc0,%r11d
140acba76:	0f 8c c4 03 00 00    	jl     0x140acbe40
140acba7c:	41 83 fb 01          	cmp    $0x1,%r11d
140acba80:	0f 85 9a 01 00 00    	jne    0x140acbc20
140acba86:	48 63 44 24 78       	movslq 0x78(%rsp),%rax
140acba8b:	48 8d 0d 6e 45 53 ff 	lea    -0xacba92(%rip),%rcx        # 0x140000000
140acba92:	45 33 f6             	xor    %r14d,%r14d
140acba95:	83 fb ff             	cmp    $0xffffffff,%ebx
140acba98:	4c 8b a4 c1 40 ee ba 	mov    0xbaee40(%rcx,%rax,8),%r12
140acba9f:	00
140acbaa0:	44 0f 45 f3          	cmovne %ebx,%r14d
140acbaa4:	33 f6                	xor    %esi,%esi
140acbaa6:	49 8b dc             	mov    %r12,%rbx
140acbaa9:	41 3b f9             	cmp    %r9d,%edi
140acbaac:	7d 21                	jge    0x140acbacf
140acbaae:	85 ed                	test   %ebp,%ebp
140acbab0:	0f 84 8a 03 00 00    	je     0x140acbe40
140acbab6:	49 ff c5             	inc    %r13