	.section	__TEXT,__text,regular,pure_instructions
	.build_version macos, 13, 0	sdk_version 13, 3
	.p2align	4, 0x90                         ## -- Begin function validate_ecx_derive
_validate_ecx_derive:                   ## @validate_ecx_derive
	.cfi_startproc
## %bb.0:
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset %rbp, -16
	movq	%rsp, %rbp
	.cfi_def_cfa_register %rbp
	movq	8(%rdi), %rdx
	testq	%rdx, %rdx
	je	LBB0_2
## %bb.1:
	movq	(%rdi), %rax
	testq	%rax, %rax
	je	LBB0_2
## %bb.4:
	movq	(%rdx), %rdx
	testq	%rdx, %rdx
	je	LBB0_6
## %bb.5:
	movq	(%rdx), %rdx
	testq	%rdx, %rdx
	je	LBB0_6
## %bb.7:
	movq	(%rax), %rax
	testq	%rax, %rax
	je	LBB0_8
## %bb.9:
	movq	%rdx, (%rcx)
	movq	8(%rax), %rax
	movq	%rax, (%r8)
	movl	$1, %eax
	popq	%rbp
	retq
LBB0_2:
	movq	_EC_F_VALIDATE_ECX_DERIVE@GOTPCREL(%rip), %rax
	movl	(%rax), %edi
	movq	_EC_R_KEYS_NOT_SET@GOTPCREL(%rip), %rax
	jmp	LBB0_3
LBB0_6:
	movq	_EC_F_VALIDATE_ECX_DERIVE@GOTPCREL(%rip), %rax
	movl	(%rax), %edi
	movq	_EC_R_INVALID_PRIVATE_KEY@GOTPCREL(%rip), %rax
	jmp	LBB0_3
LBB0_8:
	movq	_EC_F_VALIDATE_ECX_DERIVE@GOTPCREL(%rip), %rax
	movl	(%rax), %edi
	movq	_EC_R_INVALID_PEER_KEY@GOTPCREL(%rip), %rax
LBB0_3:
	movl	(%rax), %esi
	callq	_ECerr
	xorl	%eax, %eax
	popq	%rbp
	retq
	.cfi_endproc
                                        ## -- End function
	.comm	_EC_F_VALIDATE_ECX_DERIVE,4,2   ## @EC_F_VALIDATE_ECX_DERIVE
	.comm	_EC_R_KEYS_NOT_SET,4,2          ## @EC_R_KEYS_NOT_SET
	.comm	_EC_R_INVALID_PRIVATE_KEY,4,2   ## @EC_R_INVALID_PRIVATE_KEY
	.comm	_EC_R_INVALID_PEER_KEY,4,2      ## @EC_R_INVALID_PEER_KEY
	.no_dead_strip	_validate_ecx_derive
.subsections_via_symbols

	.section	__TEXT,__text,regular,pure_instructions
	.build_version macos, 13, 0	sdk_version 13, 3
	.p2align	2                               ; -- Begin function validate_ecx_derive
_validate_ecx_derive:                   ; @validate_ecx_derive
	.cfi_startproc
; %bb.0:
	stp	x29, x30, [sp, #-16]!           ; 16-byte Folded Spill
	.cfi_def_cfa_offset 16
	mov	x29, sp
	.cfi_def_cfa w29, 16
	.cfi_offset w30, -8
	.cfi_offset w29, -16
	ldr	x9, [x0, #8]
	cbz	x9, LBB0_6
; %bb.1:
	ldr	x8, [x0]
	cbz	x8, LBB0_6
; %bb.2:
	ldr	x9, [x9]
	cbz	x9, LBB0_7
; %bb.3:
	ldr	x9, [x9]
	cbz	x9, LBB0_7
; %bb.4:
	ldr	x8, [x8]
	cbz	x8, LBB0_8
; %bb.5:
	str	x9, [x3]
	ldr	x8, [x8, #8]
	str	x8, [x4]
	mov	w0, #1
	ldp	x29, x30, [sp], #16             ; 16-byte Folded Reload
	ret
LBB0_6:
Lloh0:
	adrp	x8, _EC_F_VALIDATE_ECX_DERIVE@GOTPAGE
Lloh1:
	ldr	x8, [x8, _EC_F_VALIDATE_ECX_DERIVE@GOTPAGEOFF]
Lloh2:
	ldr	w0, [x8]
Lloh3:
	adrp	x8, _EC_R_KEYS_NOT_SET@GOTPAGE
Lloh4:
	ldr	x8, [x8, _EC_R_KEYS_NOT_SET@GOTPAGEOFF]
	b	LBB0_9
LBB0_7:
Lloh5:
	adrp	x8, _EC_F_VALIDATE_ECX_DERIVE@GOTPAGE
Lloh6:
	ldr	x8, [x8, _EC_F_VALIDATE_ECX_DERIVE@GOTPAGEOFF]
Lloh7:
	ldr	w0, [x8]
Lloh8:
	adrp	x8, _EC_R_INVALID_PRIVATE_KEY@GOTPAGE
Lloh9:
	ldr	x8, [x8, _EC_R_INVALID_PRIVATE_KEY@GOTPAGEOFF]
	b	LBB0_9
LBB0_8:
Lloh10:
	adrp	x8, _EC_F_VALIDATE_ECX_DERIVE@GOTPAGE
Lloh11:
	ldr	x8, [x8, _EC_F_VALIDATE_ECX_DERIVE@GOTPAGEOFF]
Lloh12:
	ldr	w0, [x8]
Lloh13:
	adrp	x8, _EC_R_INVALID_PEER_KEY@GOTPAGE
Lloh14:
	ldr	x8, [x8, _EC_R_INVALID_PEER_KEY@GOTPAGEOFF]
LBB0_9:
	ldr	w1, [x8]
	bl	_ECerr
	mov	w0, #0
	ldp	x29, x30, [sp], #16             ; 16-byte Folded Reload
	ret
	.loh AdrpLdrGot	Lloh3, Lloh4
	.loh AdrpLdrGotLdr	Lloh0, Lloh1, Lloh2
	.loh AdrpLdrGot	Lloh8, Lloh9
	.loh AdrpLdrGotLdr	Lloh5, Lloh6, Lloh7
	.loh AdrpLdrGot	Lloh13, Lloh14
	.loh AdrpLdrGotLdr	Lloh10, Lloh11, Lloh12
	.cfi_endproc
                                        ; -- End function
	.comm	_EC_F_VALIDATE_ECX_DERIVE,4,2   ; @EC_F_VALIDATE_ECX_DERIVE
	.comm	_EC_R_KEYS_NOT_SET,4,2          ; @EC_R_KEYS_NOT_SET
	.comm	_EC_R_INVALID_PRIVATE_KEY,4,2   ; @EC_R_INVALID_PRIVATE_KEY
	.comm	_EC_R_INVALID_PEER_KEY,4,2      ; @EC_R_INVALID_PEER_KEY
	.no_dead_strip	_validate_ecx_derive
.subsections_via_symbols
