1400ba6e3:	03 c7                	add    %edi,%eax
1400ba6e5:	75 2a                	jne    0x1400ba711
1400ba6e7:	48 8b 03             	mov    (%rbx),%rax
1400ba6ea:	48 8b cb             	mov    %rbx,%rcx
1400ba6ed:	48 8b 00             	mov    (%rax),%rax
1400ba6f0:	ff 15 3a 87 15 00    	call   *0x15873a(%rip)        # 0x140212e30
1400ba6f6:	8b d7                	mov    %edi,%edx
1400ba6f8:	f0 0f c1 53 0c       	lock xadd %edx,0xc(%rbx)
1400ba6fd:	03 d7                	add    %edi,%edx
1400ba6ff:	75 10                	jne    0x1400ba711
1400ba701:	48 8b 13             	mov    (%rbx),%rdx
1400ba704:	48 8b cb             	mov    %rbx,%rcx
1400ba707:	48 8b 42 08          	mov    0x8(%rdx),%rax
1400ba70b:	ff 15 1f 87 15 00    	call   *0x15871f(%rip)        # 0x140212e30
1400ba711:	48 8b c6             	mov    %rsi,%rax
1400ba714:	48 83 c4 28          	add    $0x28,%rsp
1400ba718:	5f                   	pop    %rdi
1400ba719:	5e                   	pop    %rsi
1400ba71a:	5b                   	pop    %rbx
1400ba71b:	5d                   	pop    %rbp
1400ba71c:	c3                   	ret
1400ba71d:	48 85 db             	test   %rbx,%rbx
1400ba720:	74 38                	je     0x1400ba75a
1400ba722:	83 cf ff             	or     $0xffffffff,%edi
1400ba725:	8b c7                	mov    %edi,%eax
1400ba727:	f0 0f c1 43 08       	lock xadd %eax,0x8(%rbx)
1400ba72c:	03 c7                	add    %edi,%eax
1400ba72e:	75 2a                	jne    0x1400ba75a
1400ba730:	48 8b 03             	mov    (%rbx),%rax
1400ba733:	48 8b cb             	mov    %rbx,%rcx
1400ba736:	48 8b 00             	mov    (%rax),%rax
1400ba739:	ff 15 f1 86 15 00    	call   *0x1586f1(%rip)        # 0x140212e30
1400ba73f:	8b c7                	mov    %edi,%eax
1400ba741:	f0 0f c1 43 0c       	lock xadd %eax,0xc(%rbx)
1400ba746:	03 c7                	add    %edi,%eax
1400ba748:	75 10                	jne    0x1400ba75a
1400ba74a:	48 8b 03             	mov    (%rbx),%rax
1400ba74d:	48 8b cb             	mov    %rbx,%rcx
1400ba750:	48 8b 40 08          	mov    0x8(%rax),%rax
1400ba754:	ff 15 d6 86 15 00    	call   *0x1586d6(%rip)        # 0x140212e30
1400ba75a:	33 d2                	xor    %edx,%edx
1400ba75c:	b9 e2 34 59 1e       	mov    $0x1e5934e2,%ecx
1400ba761:	e8 7e 0b f5 ff       	call   0x14000b2e4
1400ba766:	cc                   	int3
1400ba767:	90                   	nop
1400ba768:	90                   	nop
1400ba769:	90                   	nop
1400ba76a:	90                   	nop
1400ba76b:	90                   	nop
1400ba76c:	90                   	nop
1400ba76d:	90                   	nop
1400ba76e:	90                   	nop
1400ba76f:	90                   	nop
1400ba770:	40 55                	rex push %rbp
1400ba772:	53                   	push   %rbx
1400ba773:	56                   	push   %rsi
1400ba774:	57                   	push   %rdi
1400ba775:	41 56                	push   %r14
1400ba777:	48 8d 6c 24 c9       	lea    -0x37(%rsp),%rbp
1400ba77c:	48 81 ec c0 00 00 00 	sub    $0xc0,%rsp
1400ba783:	49 8b f0             	mov    %r8,%rsi
1400ba786:	48 8b fa             	mov    %rdx,%rdi
1400ba789:	4c 8d 71 28          	lea    0x28(%rcx),%r14
1400ba78d:	49 8b d1             	mov    %r9,%rdx
1400ba790:	48 8d 4d ef          	lea    -0x11(%rbp),%rcx
1400ba794:	ff 15 2e 7e 27 00    	call   *0x277e2e(%rip)        # 0x1403325c8
1400ba79a:	b9 58 00 00 00       	mov    $0x58,%ecx
1400ba79f:	ff 15 ab 83 15 00    	call   *0x1583ab(%rip)        # 0x140212b50
1400ba7a5:	48 8b d8             	mov    %rax,%rbx
1400ba7a8:	48 85 c0             	test   %rax,%rax
1400ba7ab:	0f 84 f0 00 00 00    	je     0x1400ba8a1
1400ba7b1:	48 8d 48 08          	lea    0x8(%rax),%rcx
1400ba7b5:	48 8d 55 ef          	lea    -0x11(%rbp),%rdx
1400ba7b9:	ff 15 09 7e 27 00    	call   *0x277e09(%rip)        # 0x1403325c8
1400ba7bf:	f0 ff 05 b2 6e 25 00 	lock incl 0x256eb2(%rip)        # 0x140311678
1400ba7c6:	c7 43 50 01 00 00 00 	movl   $0x1,0x50(%rbx)
1400ba7cd:	48 8d 05 0c 24 18 00 	lea    0x18240c(%rip),%rax        # 0x14023cbe0
1400ba7d4:	48 89 03             	mov    %rax,(%rbx)
1400ba7d7:	48 89 5d a7          	mov    %rbx,-0x59(%rbp)
1400ba7db:	48 8d 4d ef          	lea    -0x11(%rbp),%rcx
1400ba7df:	ff 15 53 7d 27 00    	call   *0x277d53(%rip)        # 0x140332538
1400ba7e5:	48 8b d6             	mov    %rsi,%rdx
1400ba7e8:	48 8d 4d 9f          	lea    -0x61(%rbp),%rcx
1400ba7ec:	e8 23 3b fc ff       	call   0x14007e314
1400ba7f1:	4c 8b 00             	mov    (%rax),%r8
1400ba7f4:	4c 89 45 af          	mov    %r8,-0x51(%rbp)
1400ba7f8:	48 8b d7             	mov    %rdi,%rdx
1400ba7fb:	48 8d 4d 97          	lea    -0x69(%rbp),%rcx
1400ba7ff:	e8 10 3b fc ff       	call   0x14007e314
1400ba804:	48 8b 10             	mov    (%rax),%rdx
1400ba807:	48 89 55 cf          	mov    %rdx,-0x31(%rbp)
1400ba80b:	4c 8d 4d a7          	lea    -0x59(%rbp),%r9
1400ba80f:	4c 8d 45 af          	lea    -0x51(%rbp),%r8
1400ba813:	48 8d 55 cf          	lea    -0x31(%rbp),%rdx
1400ba817:	49 8b ce             	mov    %r14,%rcx
1400ba81a:	e8 ad f8 ff ff       	call   0x1400ba0cc
1400ba81f:	83 cf ff             	or     $0xffffffff,%edi
1400ba822:	48 8b 5d 97          	mov    -0x69(%rbp),%rbx
1400ba826:	48 85 db             	test   %rbx,%rbx
1400ba829:	74 29                	je     0x1400ba854
1400ba82b:	8b c7                	mov    %edi,%eax
1400ba82d:	f0 0f c1 43 18       	lock xadd %eax,0x18(%rbx)
1400ba832:	83 e8 01             	sub    $0x1,%eax
1400ba835:	75 14                	jne    0x1400ba84b
1400ba837:	e8 66 91 14 00       	call   0x1402039a2
1400ba83c:	48 8b c8             	mov    %rax,%rcx
1400ba83f:	4c 8b c3             	mov    %rbx,%r8
1400ba842:	33 d2                	xor    %edx,%edx
1400ba844:	e8 4d 91 14 00       	call   0x140203996
1400ba849:	eb 04                	jmp    0x1400ba84f
1400ba84b:	85 c0                	test   %eax,%eax
1400ba84d:	78 4b                	js     0x1400ba89a
1400ba84f:	48 83 65 97 00       	andq   $0x0,-0x69(%rbp)
1400ba854:	48 8b 5d 9f          	mov    -0x61(%rbp),%rbx
1400ba858:	48 85 db             	test   %rbx,%rbx
1400ba85b:	74 21                	je     0x1400ba87e
1400ba85d:	f0 0f c1 7b 18       	lock xadd %edi,0x18(%rbx)
1400ba862:	83 ef 01             	sub    $0x1,%edi
1400ba865:	75 2f                	jne    0x1400ba896
1400ba867:	e8 36 91 14 00       	call   0x1402039a2
1400ba86c:	48 8b c8             	mov    %rax,%rcx
1400ba86f:	4c 8b c3             	mov    %rbx,%r8
1400ba872:	33 d2                	xor    %edx,%edx
1400ba874:	e8 1d 91 14 00       	call   0x140203996
1400ba879:	48 83 65 9f 00       	andq   $0x0,-0x61(%rbp)
1400ba87e:	48 8d 4d a7          	lea    -0x59(%rbp),%rcx
1400ba882:	e8 21 c8 f4 ff       	call   0x1400070a8
1400ba887:	90                   	nop
1400ba888:	48 81 c4 c0 00 00 00 	add    $0xc0,%rsp
1400ba88f:	41 5e                	pop    %r14
1400ba891:	5f                   	pop    %rdi
1400ba892:	5e                   	pop    %rsi
1400ba893:	5b                   	pop    %rbx
1400ba894:	5d                   	pop    %rbp
1400ba895:	c3                   	ret
1400ba896:	85 ff                	test   %edi,%edi
1400ba898:	79 df                	jns    0x1400ba879
1400ba89a:	ff 15 e8 82 15 00    	call   *0x1582e8(%rip)        # 0x140212b88
1400ba8a0:	cc                   	int3
1400ba8a1:	e8 ae f1 f4 ff       	call   0x140009a54
1400ba8a6:	cc                   	int3
1400ba8a7:	90                   	nop
1400ba8a8:	90                   	nop
1400ba8a9:	90                   	nop
1400ba8aa:	90                   	nop
1400ba8ab:	90                   	nop
1400ba8ac:	90                   	nop
1400ba8ad:	90                   	nop
1400ba8ae:	90                   	nop
1400ba8af:	90                   	nop
1400ba8b0:	48 83 22 00          	andq   $0x0,(%rdx)
1400ba8b4:	48 8b c2             	mov    %rdx,%rax
1400ba8b7:	48 83 62 08 00       	andq   $0x0,0x8(%rdx)
1400ba8bc:	c3                   	ret
1400ba8bd:	90                   	nop
1400ba8be:	90                   	nop
1400ba8bf:	90                   	nop
1400ba8c0:	48 89 5c 24 08       	mov    %rbx,0x8(%rsp)
1400ba8c5:	57                   	push   %rdi
1400ba8c6:	48 83 ec 20          	sub    $0x20,%rsp
1400ba8ca:	8b da                	mov    %edx,%ebx
1400ba8cc:	48 8b f9             	mov    %rcx,%rdi
1400ba8cf:	e8 24 00 00 00       	call   0x1400ba8f8
1400ba8d4:	f6 c3 01             	test   $0x1,%bl
1400ba8d7:	74 0e                	je     0x1400ba8e7
1400ba8d9:	48 85 ff             	test   %rdi,%rdi
1400ba8dc:	74 09                	je     0x1400ba8e7
1400ba8de:	48 8b cf             	mov    %rdi,%rcx
1400ba8e1:	ff 15 59 82 15 00    	call   *0x158259(%rip)        # 0x140212b40
1400ba8e7:	48 8b 5c 24 30       	mov    0x30(%rsp),%rbx
1400ba8ec:	48 8b c7             	mov    %rdi,%rax
1400ba8ef:	48 83 c4 20          	add    $0x20,%rsp
1400ba8f3:	5f                   	pop    %rdi
1400ba8f4:	c3                   	ret
1400ba8f5:	90                   	nop
1400ba8f6:	90                   	nop
1400ba8f7:	90                   	nop
1400ba8f8:	40 53                	rex push %rbx
1400ba8fa:	48 83 ec 20          	sub    $0x20,%rsp
1400ba8fe:	48 8b d9             	mov    %rcx,%rbx
1400ba901:	48 83 c1 38          	add    $0x38,%rcx
1400ba905:	48 83 39 00          	cmpq   $0x0,(%rcx)
1400ba909:	74 05                	je     0x1400ba910
1400ba90b:	e8 98 c7 f4 ff       	call   0x1400070a8
1400ba910:	48 8b 43 30          	mov    0x30(%rbx),%rax
1400ba914:	48 83 f8 0f          	cmp    $0xf,%rax
1400ba918:	76 29                	jbe    0x1400ba943
1400ba91a:	48 8b 4b 18          	mov    0x18(%rbx),%rcx
1400ba91e:	48 ff c0             	inc    %rax
1400ba921:	48 3d 00 10 00 00    	cmp    $0x1000,%rax
1400ba927:	72 14                	jb     0x1400ba93d
1400ba929:	48 8b 51 f8          	mov    -0x8(%rcx),%rdx
1400ba92d:	48 2b ca             	sub    %rdx,%rcx
1400ba930:	48 8d 41 f8          	lea    -0x8(%rcx),%rax
1400ba934:	48 83 f8 1f          	cmp    $0x1f,%rax
1400ba938:	77 20                	ja     0x1400ba95a
1400ba93a:	48 8b ca             	mov    %rdx,%rcx
1400ba93d:	ff 15 fd 81 15 00    	call   *0x1581fd(%rip)        # 0x140212b40
1400ba943:	48 83 63 28 00       	andq   $0x0,0x28(%rbx)
1400ba948:	48 c7 43 30 0f 00 00 	movq   $0xf,0x30(%rbx)
1400ba94f:	00
1400ba950:	c6 43 18 00          	movb   $0x0,0x18(%rbx)
1400ba954:	48 83 c4 20          	add    $0x20,%rsp
1400ba958:	5b                   	pop    %rbx
1400ba959:	c3                   	ret
1400ba95a:	ff 15 20 82 15 00    	call   *0x158220(%rip)        # 0x140212b80
1400ba960:	cc                   	int3
1400ba961:	90                   	nop
1400ba962:	90                   	nop
1400ba963:	90                   	nop
1400ba964:	40 53                	rex push %rbx
1400ba966:	48 83 ec 20          	sub    $0x20,%rsp
1400ba96a:	48 8b 41 20          	mov    0x20(%rcx),%rax
1400ba96e:	48 8b d9             	mov    %rcx,%rbx
1400ba971:	48 83 f8 0f          	cmp    $0xf,%rax
1400ba975:	76 29                	jbe    0x1400ba9a0
1400ba977:	48 8b 49 08          	mov    0x8(%rcx),%rcx
1400ba97b:	48 ff c0             	inc    %rax
1400ba97e:	48 3d 00 10 00 00    	cmp    $0x1000,%rax
1400ba984:	72 14                	jb     0x1400ba99a
1400ba986:	48 8b 51 f8          	mov    -0x8(%rcx),%rdx
1400ba98a:	48 2b ca             	sub    %rdx,%rcx
1400ba98d:	48 8d 41 f8          	lea    -0x8(%rcx),%rax
1400ba991:	48 83 f8 1f          	cmp    $0x1f,%rax
1400ba995:	77 2d                	ja     0x1400ba9c4
1400ba997:	48 8b ca             	mov    %rdx,%rcx
1400ba99a:	ff 15 a0 81 15 00    	call   *0x1581a0(%rip)        # 0x140212b40
1400ba9a0:	33 c0                	xor    %eax,%eax
1400ba9a2:	48 c7 43 20 0f 00 00 	movq   $0xf,0x20(%rbx)
1400ba9a9:	00
1400ba9aa:	48 89 43 18          	mov    %rax,0x18(%rbx)
1400ba9ae:	88 43 08             	mov    %al,0x8(%rbx)
1400ba9b1:	48 39 03             	cmp    %rax,(%rbx)
1400ba9b4:	74 08                	je     0x1400ba9be
1400ba9b6:	48 8b cb             	mov    %rbx,%rcx
1400ba9b9:	e8 ea c6 f4 ff       	call   0x1400070a8
1400ba9be:	48 83 c4 20          	add    $0x20,%rsp
1400ba9c2:	5b                   	pop    %rbx
1400ba9c3:	c3                   	ret
1400ba9c4:	ff 15 b6 81 15 00    	call   *0x1581b6(%rip)        # 0x140212b80
1400ba9ca:	cc                   	int3
1400ba9cb:	90                   	nop
1400ba9cc:	48 89 5c 24 08       	mov    %rbx,0x8(%rsp)
1400ba9d1:	48 89 7c 24 20       	mov    %rdi,0x20(%rsp)
1400ba9d6:	55                   	push   %rbp
1400ba9d7:	48 8b ec             	mov    %rsp,%rbp
1400ba9da:	48 83 ec 30          	sub    $0x30,%rsp
1400ba9de:	48 8b f9             	mov    %rcx,%rdi
1400ba9e1:	b9 10 00 00 00       	mov    $0x10,%ecx
1400ba9e6:	65 48 8b 04 25 58 00 	mov    %gs:0x58,%rax
1400ba9ed:	00 00
1400ba9ef:	48 8b 00             	mov    (%rax),%rax
1400ba9f2:	8b 04 01             	mov    (%rcx,%rax,1),%eax
1400ba9f5:	39 05 f5 b2 25 00    	cmp    %eax,0x25b2f5(%rip)        # 0x140315cf0
1400ba9fb:	7f 3e                	jg     0x1400baa3b
1400ba9fd:	48 8b 0d f4 b2 25 00 	mov    0x25b2f4(%rip),%rcx        # 0x140315cf8
1400baa04:	48 89 0f             	mov    %rcx,(%rdi)
1400baa07:	48 85 c9             	test   %rcx,%rcx
1400baa0a:	74 0d                	je     0x1400baa19
1400baa0c:	48 8b 01             	mov    (%rcx),%rax
1400baa0f:	48 8b 40 08          	mov    0x8(%rax),%rax
1400baa13:	ff 15 17 84 15 00    	call   *0x158417(%rip)        # 0x140212e30
1400baa19:	48 8b c7             	mov    %rdi,%rax
1400baa1c:	48 8b 5c 24 40       	mov    0x40(%rsp),%rbx
1400baa21:	48 8b 7c 24 58       	mov    0x58(%rsp),%rdi
1400baa26:	48 83 c4 30          	add    $0x30,%rsp
1400baa2a:	5d                   	pop    %rbp
1400baa2b:	c3                   	ret
1400baa2c:	85 db                	test   %ebx,%ebx
1400baa2e:	0f 89 ce 00 00 00    	jns    0x1400bab02
1400baa34:	ff 15 4e 81 15 00    	call   *0x15814e(%rip)        # 0x140212b88
1400baa3a:	cc                   	int3
1400baa3b:	48 8d 0d ae b2 25 00 	lea    0x25b2ae(%rip),%rcx        # 0x140315cf0
1400baa42:	e8 8d a2 14 00       	call   0x140204cd4
1400baa47:	83 cb ff             	or     $0xffffffff,%ebx
1400baa4a:	39 1d a0 b2 25 00    	cmp    %ebx,0x25b2a0(%rip)        # 0x140315cf0
1400baa50:	75 ab                	jne    0x1400ba9fd
1400baa52:	48 8d 05 cf 23 1b 00 	lea    0x1b23cf(%rip),%rax        # 0x14026ce28
1400baa59:	48 89 45 f0          	mov    %rax,-0x10(%rbp)
1400baa5d:	48 c7 45 f8 1b 00 00 	movq   $0x1b,-0x8(%rbp)
1400baa64:	00
1400baa65:	48 8d 55 f0          	lea    -0x10(%rbp),%rdx
1400baa69:	48 8d 4d 20          	lea    0x20(%rbp),%rcx
1400baa6d:	e8 16 e9 fb ff       	call   0x140079388
1400baa72:	48 8d 05 7f 25 1b 00 	lea    0x1b257f(%rip),%rax        # 0x14026cff8
1400baa79:	48 89 45 f0          	mov    %rax,-0x10(%rbp)
1400baa7d:	48 c7 45 f8 14 00 00 	movq   $0x14,-0x8(%rbp)
1400baa84:	00
1400baa85:	48 8d 55 f0          	lea    -0x10(%rbp),%rdx
1400baa89:	48 8d 4d 18          	lea    0x18(%rbp),%rcx
1400baa8d:	e8 f6 e8 fb ff       	call   0x140079388
1400baa92:	4c 8d 45 18          	lea    0x18(%rbp),%r8
1400baa96:	48 8d 55 20          	lea    0x20(%rbp),%rdx
1400baa9a:	48 8d 0d 57 b2 25 00 	lea    0x25b257(%rip),%rcx        # 0x140315cf8
1400baaa1:	e8 f6 61 fd ff       	call   0x140090c9c
1400baaa6:	48 8b 45 18          	mov    0x18(%rbp),%rax
1400baaaa:	48 85 c0             	test   %rax,%rax
1400baaad:	74 29                	je     0x1400baad8
1400baaaf:	8b cb                	mov    %ebx,%ecx
1400baab1:	f0 0f c1 48 18       	lock xadd %ecx,0x18(%rax)
1400baab6:	83 e9 01             	sub    $0x1,%ecx
1400baab9:	75 15                	jne    0x1400baad0
1400baabb:	e8 e2 8e 14 00       	call   0x1402039a2
1400baac0:	48 8b c8             	mov    %rax,%rcx
1400baac3:	4c 8b 45 18          	mov    0x18(%rbp),%r8
1400baac7:	33 d2                	xor    %edx,%edx
1400baac9:	e8 c8 8e 14 00       	call   0x140203996
1400baace:	eb 08                	jmp    0x1400baad8
1400baad0:	85 c9                	test   %ecx,%ecx
1400baad2:	0f 88 5c ff ff ff    	js     0x1400baa34
1400baad8:	48 8b 45 20          	mov    0x20(%rbp),%rax
1400baadc:	48 85 c0             	test   %rax,%rax
1400baadf:	74 21                	je     0x1400bab02
1400baae1:	f0 0f c1 58 18       	lock xadd %ebx,0x18(%rax)
1400baae6:	83 eb 01             	sub    $0x1,%ebx
1400baae9:	0f 85 3d ff ff ff    	jne    0x1400baa2c
1400baaef:	e8 ae 8e 14 00       	call   0x1402039a2
1400baaf4:	48 8b c8             	mov    %rax,%rcx
1400baaf7:	4c 8b 45 20          	mov    0x20(%rbp),%r8
1400baafb:	33 d2                	xor    %edx,%edx
1400baafd:	e8 94 8e 14 00       	call   0x140203996
1400bab02:	48 8d 0d 47 4f 15 00 	lea    0x154f47(%rip),%rcx        # 0x14020fa50
1400bab09:	e8 7a 9f 14 00       	call   0x140204a88
1400bab0e:	48 8d 0d db b1 25 00 	lea    0x25b1db(%rip),%rcx        # 0x140315cf0
1400bab15:	e8 4e a1 14 00       	call   0x140204c68
1400bab1a:	e9 de fe ff ff       	jmp    0x1400ba9fd
1400bab1f:	cc                   	int3
1400bab20:	48 89 5c 24 08       	mov    %rbx,0x8(%rsp)
1400bab25:	55                   	push   %rbp
1400bab26:	56                   	push   %rsi
1400bab27:	57                   	push   %rdi
1400bab28:	41 56                	push   %r14
1400bab2a:	41 57                	push   %r15
1400bab2c:	48 8b ec             	mov    %rsp,%rbp
1400bab2f:	48 83 ec 50          	sub    $0x50,%rsp
1400bab33:	48 8b da             	mov    %rdx,%rbx
1400bab36:	4c 8b f9             	mov    %rcx,%r15
1400bab39:	83 65 d0 00          	andl   $0x0,-0x30(%rbp)
1400bab3d:	48 8d 55 f0          	lea    -0x10(%rbp),%rdx
1400bab41:	48 8b cb             	mov    %rbx,%rcx
1400bab44:	e8 9f f6 fb ff       	call   0x14007a1e8
1400bab49:	48 8b 30             	mov    (%rax),%rsi
1400bab4c:	48 89 75 e8          	mov    %rsi,-0x18(%rbp)
1400bab50:	48 85 f6             	test   %rsi,%rsi
1400bab53:	74 10                	je     0x1400bab65
1400bab55:	48 8b 06             	mov    (%rsi),%rax
1400bab58:	48 8b ce             	mov    %rsi,%rcx
1400bab5b:	48 8b 40 08          	mov    0x8(%rax),%rax
1400bab5f:	ff 15 cb 82 15 00    	call   *0x1582cb(%rip)        # 0x140212e30
1400bab65:	48 8b 0b             	mov    (%rbx),%rcx