	.section	__TEXT,__text,regular,pure_instructions
	.build_version macos, 13, 0	sdk_version 13, 3
	.p2align	4, 0x90                         ## -- Begin function pkey_rsa_ctrl
_pkey_rsa_ctrl:                         ## @pkey_rsa_ctrl
	.cfi_startproc
## %bb.0:
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset %rbp, -16
	movq	%rsp, %rbp
	.cfi_def_cfa_register %rbp
	pushq	%r15
	pushq	%r14
	pushq	%r13
	pushq	%r12
	pushq	%rbx
	pushq	%rax
	.cfi_offset %rbx, -56
	.cfi_offset %r12, -48
	.cfi_offset %r13, -40
	.cfi_offset %r14, -32
	.cfi_offset %r15, -24
                                        ## kill: def $esi killed $esi def $rsi
	leal	-128(%rsi), %eax
	cmpl	$22, %eax
	ja	LBB0_68
## %bb.1:
	movq	%rcx, %r13
	movl	%edx, %r12d
	movq	%rdi, %rbx
	movq	8(%rdi), %r15
	movl	$1, %r14d
	leaq	LJTI0_0(%rip), %rcx
	movslq	(%rcx,%rax,4), %rax
	addq	%rcx, %rax
	jmpq	*%rax
LBB0_2:
	movq	%rbx, %rdi
	callq	_pkey_ctx_is_pss
	testl	%eax, %eax
	je	LBB0_69
LBB0_3:
	movq	_RSA_F_PKEY_RSA_CTRL@GOTPCREL(%rip), %rax
	movl	(%rax), %edi
	movq	_RSA_R_OPERATION_NOT_SUPPORTED_FOR_THIS_KEYTYPE@GOTPCREL(%rip), %rax
	jmp	LBB0_67
LBB0_4:
	movl	8(%r15), %eax
	movq	_RSA_PKCS1_PSS_PADDING@GOTPCREL(%rip), %rcx
	cmpl	(%rcx), %eax
	jne	LBB0_49
## %bb.5:
	cmpl	$141, %esi
	jne	LBB0_45
## %bb.6:
	movl	12(%r15), %eax
	movl	%eax, (%r13)
	jmp	LBB0_69
LBB0_7:
	movl	8(%r15), %eax
	movq	_RSA_PKCS1_OAEP_PADDING@GOTPCREL(%rip), %rcx
	cmpl	(%rcx), %eax
	jne	LBB0_40
## %bb.8:
	cmpl	$143, %esi
	je	LBB0_44
	jmp	LBB0_9
LBB0_10:
	movl	8(%r15), %eax
	movq	_RSA_PKCS1_PSS_PADDING@GOTPCREL(%rip), %rcx
	cmpl	(%rcx), %eax
	je	LBB0_41
## %bb.11:
	movq	_RSA_PKCS1_OAEP_PADDING@GOTPCREL(%rip), %rcx
	cmpl	(%rcx), %eax
	je	LBB0_41
## %bb.12:
	movq	_RSA_F_PKEY_RSA_CTRL@GOTPCREL(%rip), %rax
	movl	(%rax), %edi
	movq	_RSA_R_INVALID_MGF1_MD@GOTPCREL(%rip), %rax
	jmp	LBB0_67
LBB0_13:
	movq	_RSA_PKCS1_PADDING@GOTPCREL(%rip), %rax
	cmpl	%r12d, (%rax)
	jg	LBB0_66
## %bb.14:
	movq	_RSA_PKCS1_PSS_PADDING@GOTPCREL(%rip), %r13
	cmpl	%r12d, (%r13)
	jl	LBB0_66
## %bb.15:
	movq	(%r15), %rdi
	movl	%r12d, %esi
	callq	_check_padding_md
	testl	%eax, %eax
	je	LBB0_58
## %bb.16:
	cmpl	%r12d, (%r13)
	jne	LBB0_60
## %bb.17:
	movq	_EVP_PKEY_OP_SIGN@GOTPCREL(%rip), %rax
	movq	_EVP_PKEY_OP_VERIFY@GOTPCREL(%rip), %rcx
	movl	(%rcx), %ecx
	orl	(%rax), %ecx
	testl	%ecx, (%rbx)
	je	LBB0_66
## %bb.18:
	cmpq	$0, (%r15)
	jne	LBB0_61
## %bb.19:
	xorl	%eax, %eax
	callq	_EVP_sha1
	movq	%rax, (%r15)
	jmp	LBB0_61
LBB0_20:
	movl	8(%r15), %eax
	movq	_RSA_PKCS1_OAEP_PADDING@GOTPCREL(%rip), %rcx
	cmpl	(%rcx), %eax
	jne	LBB0_40
## %bb.21:
	movq	40(%r15), %rdi
	callq	_OPENSSL_free
	testl	%r12d, %r12d
	jle	LBB0_56
## %bb.22:
	testq	%r13, %r13
	je	LBB0_56
## %bb.23:
	movq	%r13, 40(%r15)
	movl	%r12d, 48(%r15)
	jmp	LBB0_69
LBB0_24:
	testq	%r13, %r13
	je	LBB0_27
## %bb.25:
	movq	%r13, %rdi
	callq	_BN_is_odd
	testl	%eax, %eax
	je	LBB0_27
## %bb.26:
	movq	%r13, %rdi
	callq	_BN_is_one
	testl	%eax, %eax
	je	LBB0_70
LBB0_27:
	movq	_RSA_F_PKEY_RSA_CTRL@GOTPCREL(%rip), %rax
	movl	(%rax), %edi
	movq	_RSA_R_BAD_E_VALUE@GOTPCREL(%rip), %rax
	jmp	LBB0_67
LBB0_28:
	movq	_RSA_DEFAULT_PRIME_NUM@GOTPCREL(%rip), %rax
	cmpl	%r12d, (%rax)
	jg	LBB0_50
## %bb.29:
	movq	_RSA_MAX_PRIME_NUM@GOTPCREL(%rip), %rax
	cmpl	%r12d, (%rax)
	jl	LBB0_50
## %bb.30:
	movl	%r12d, 24(%r15)
	jmp	LBB0_69
LBB0_31:
	movq	_RSA_MIN_MODULUS_BITS@GOTPCREL(%rip), %rax
	cmpl	%r12d, (%rax)
	jle	LBB0_51
## %bb.32:
	movq	_RSA_F_PKEY_RSA_CTRL@GOTPCREL(%rip), %rax
	movl	(%rax), %edi
	movq	_RSA_R_KEY_SIZE_TOO_SMALL@GOTPCREL(%rip), %rax
	jmp	LBB0_67
LBB0_33:
	movl	8(%r15), %esi
	movq	%r13, %rdi
	callq	_check_padding_md
	testl	%eax, %eax
	je	LBB0_58
## %bb.34:
	movq	%r15, %rdi
	callq	_rsa_pss_restricted
	testl	%eax, %eax
	je	LBB0_9
## %bb.35:
	movq	(%r15), %rdi
	callq	_EVP_MD_type
	movl	%eax, %ebx
	movq	%r13, %rdi
	callq	_EVP_MD_type
	cmpl	%eax, %ebx
	je	LBB0_69
## %bb.36:
	movq	_RSA_F_PKEY_RSA_CTRL@GOTPCREL(%rip), %rax
	movl	(%rax), %edi
	movq	_RSA_R_DIGEST_NOT_ALLOWED@GOTPCREL(%rip), %rax
	jmp	LBB0_76
LBB0_37:
	movl	8(%r15), %eax
	movl	%eax, (%r13)
	jmp	LBB0_69
LBB0_38:
	movl	8(%r15), %eax
	movq	_RSA_PKCS1_OAEP_PADDING@GOTPCREL(%rip), %rcx
	cmpl	(%rcx), %eax
	jne	LBB0_40
## %bb.39:
	movq	40(%r15), %rax
	movq	%rax, (%r13)
	movl	48(%r15), %r14d
	jmp	LBB0_69
LBB0_40:
	movq	_RSA_F_PKEY_RSA_CTRL@GOTPCREL(%rip), %rax
	movl	(%rax), %edi
	movq	_RSA_R_INVALID_PADDING_MODE@GOTPCREL(%rip), %rax
	jmp	LBB0_67
LBB0_41:
	cmpl	$145, %esi
	jne	LBB0_52
## %bb.42:
	movq	32(%r15), %rax
	testq	%rax, %rax
	je	LBB0_44
## %bb.43:
	movq	%rax, (%r13)
	jmp	LBB0_69
LBB0_44:
	movq	(%r15), %rax
	movq	%rax, (%r13)
	jmp	LBB0_69
LBB0_9:
	movq	%r13, (%r15)
	jmp	LBB0_69
LBB0_58:
	xorl	%r14d, %r14d
	jmp	LBB0_69
LBB0_45:
	movq	_RSA_PSS_SALTLEN_MAX@GOTPCREL(%rip), %rax
	cmpl	%r12d, (%rax)
	jg	LBB0_68
## %bb.46:
	movq	%r15, %rdi
	callq	_rsa_pss_restricted
	testl	%eax, %eax
	je	LBB0_77
## %bb.47:
	movq	_RSA_PSS_SALTLEN_AUTO@GOTPCREL(%rip), %rax
	cmpl	%r12d, (%rax)
	jne	LBB0_71
## %bb.48:
	movl	(%rbx), %eax
	movq	_EVP_PKEY_OP_VERIFY@GOTPCREL(%rip), %rcx
	cmpl	(%rcx), %eax
	jne	LBB0_71
LBB0_49:
	movq	_RSA_F_PKEY_RSA_CTRL@GOTPCREL(%rip), %rax
	movl	(%rax), %edi
	movq	_RSA_R_INVALID_PSS_SALTLEN@GOTPCREL(%rip), %rax
	jmp	LBB0_67
LBB0_50:
	movq	_RSA_F_PKEY_RSA_CTRL@GOTPCREL(%rip), %rax
	movl	(%rax), %edi
	movq	_RSA_R_KEY_PRIME_NUM_INVALID@GOTPCREL(%rip), %rax
	jmp	LBB0_67
LBB0_51:
	movl	%r12d, 20(%r15)
	jmp	LBB0_69
LBB0_52:
	movq	%r15, %rdi
	callq	_rsa_pss_restricted
	testl	%eax, %eax
	je	LBB0_59
## %bb.53:
	movq	32(%r15), %rdi
	callq	_EVP_MD_type
	movl	%eax, %ebx
	movq	%r13, %rdi
	callq	_EVP_MD_type
	cmpl	%eax, %ebx
	je	LBB0_69
## %bb.54:
	movq	_RSA_F_PKEY_RSA_CTRL@GOTPCREL(%rip), %rax
	movl	(%rax), %edi
	movq	_RSA_R_MGF1_DIGEST_NOT_ALLOWED@GOTPCREL(%rip), %rax
	jmp	LBB0_76
LBB0_56:
	movq	$0, 40(%r15)
	movl	$0, 48(%r15)
	jmp	LBB0_69
LBB0_59:
	movq	%r13, 32(%r15)
	jmp	LBB0_69
LBB0_60:
	movq	%rbx, %rdi
	callq	_pkey_ctx_is_pss
	testl	%eax, %eax
	jne	LBB0_66
LBB0_61:
	movq	_RSA_PKCS1_OAEP_PADDING@GOTPCREL(%rip), %rax
	cmpl	%r12d, (%rax)
	jne	LBB0_65
## %bb.62:
	movq	_EVP_PKEY_OP_TYPE_CRYPT@GOTPCREL(%rip), %rax
	movl	(%rax), %eax
	testl	%eax, (%rbx)
	je	LBB0_66
## %bb.63:
	cmpq	$0, (%r15)
	jne	LBB0_65
## %bb.64:
	xorl	%eax, %eax
	callq	_EVP_sha1
	movq	%rax, (%r15)
LBB0_65:
	movl	%r12d, 8(%r15)
	jmp	LBB0_69
LBB0_66:
	movq	_RSA_F_PKEY_RSA_CTRL@GOTPCREL(%rip), %rax
	movl	(%rax), %edi
	movq	_RSA_R_ILLEGAL_OR_UNSUPPORTED_PADDING_MODE@GOTPCREL(%rip), %rax
LBB0_67:
	movl	(%rax), %esi
	callq	_RSAerr
LBB0_68:
	movl	$-2, %r14d
LBB0_69:
	movl	%r14d, %eax
	addq	$8, %rsp
	popq	%rbx
	popq	%r12
	popq	%r13
	popq	%r14
	popq	%r15
	popq	%rbp
	retq
LBB0_70:
	movq	56(%r15), %rdi
	callq	_BN_free
	movq	%r13, 56(%r15)
	jmp	LBB0_69
LBB0_71:
	movq	_RSA_PSS_SALTLEN_DIGEST@GOTPCREL(%rip), %rax
	cmpl	%r12d, (%rax)
	jne	LBB0_73
## %bb.72:
	movl	16(%r15), %ebx
	movq	(%r15), %rdi
	callq	_EVP_MD_size
	cmpl	%eax, %ebx
	jg	LBB0_75
LBB0_73:
	testl	%r12d, %r12d
	js	LBB0_77
## %bb.74:
	cmpl	%r12d, 16(%r15)
	jle	LBB0_77
LBB0_75:
	movq	_RSA_F_PKEY_RSA_CTRL@GOTPCREL(%rip), %rax
	movl	(%rax), %edi
	movq	_RSA_R_PSS_SALTLEN_TOO_SMALL@GOTPCREL(%rip), %rax
LBB0_76:
	movl	(%rax), %esi
	callq	_RSAerr
	xorl	%r14d, %r14d
	jmp	LBB0_69
LBB0_77:
	movl	%r12d, 12(%r15)
	jmp	LBB0_69
	.cfi_endproc
	.p2align	2, 0x90
	.data_region jt32
.set L0_0_set_4, LBB0_4-LJTI0_0
.set L0_0_set_13, LBB0_13-LJTI0_0
.set L0_0_set_7, LBB0_7-LJTI0_0
.set L0_0_set_20, LBB0_20-LJTI0_0
.set L0_0_set_10, LBB0_10-LJTI0_0
.set L0_0_set_24, LBB0_24-LJTI0_0
.set L0_0_set_28, LBB0_28-LJTI0_0
.set L0_0_set_31, LBB0_31-LJTI0_0
.set L0_0_set_69, LBB0_69-LJTI0_0
.set L0_0_set_2, LBB0_2-LJTI0_0
.set L0_0_set_3, LBB0_3-LJTI0_0
.set L0_0_set_33, LBB0_33-LJTI0_0
.set L0_0_set_37, LBB0_37-LJTI0_0
.set L0_0_set_38, LBB0_38-LJTI0_0
.set L0_0_set_44, LBB0_44-LJTI0_0
LJTI0_0:
	.long	L0_0_set_4
	.long	L0_0_set_13
	.long	L0_0_set_7
	.long	L0_0_set_20
	.long	L0_0_set_10
	.long	L0_0_set_24
	.long	L0_0_set_28
	.long	L0_0_set_31
	.long	L0_0_set_69
	.long	L0_0_set_2
	.long	L0_0_set_2
	.long	L0_0_set_3
	.long	L0_0_set_33
	.long	L0_0_set_4
	.long	L0_0_set_37
	.long	L0_0_set_7
	.long	L0_0_set_38
	.long	L0_0_set_10
	.long	L0_0_set_44
	.long	L0_0_set_69
	.long	L0_0_set_69
	.long	L0_0_set_2
	.long	L0_0_set_2
	.end_data_region
                                        ## -- End function
	.comm	_RSA_PKCS1_PADDING,4,2          ## @RSA_PKCS1_PADDING
	.comm	_RSA_PKCS1_PSS_PADDING,4,2      ## @RSA_PKCS1_PSS_PADDING
	.comm	_EVP_PKEY_OP_SIGN,4,2           ## @EVP_PKEY_OP_SIGN
	.comm	_EVP_PKEY_OP_VERIFY,4,2         ## @EVP_PKEY_OP_VERIFY
	.comm	_RSA_PKCS1_OAEP_PADDING,4,2     ## @RSA_PKCS1_OAEP_PADDING
	.comm	_EVP_PKEY_OP_TYPE_CRYPT,4,2     ## @EVP_PKEY_OP_TYPE_CRYPT
	.comm	_RSA_F_PKEY_RSA_CTRL,4,2        ## @RSA_F_PKEY_RSA_CTRL
	.comm	_RSA_R_ILLEGAL_OR_UNSUPPORTED_PADDING_MODE,4,2 ## @RSA_R_ILLEGAL_OR_UNSUPPORTED_PADDING_MODE
	.comm	_RSA_R_INVALID_PSS_SALTLEN,4,2  ## @RSA_R_INVALID_PSS_SALTLEN
	.comm	_RSA_PSS_SALTLEN_MAX,4,2        ## @RSA_PSS_SALTLEN_MAX
	.comm	_RSA_PSS_SALTLEN_AUTO,4,2       ## @RSA_PSS_SALTLEN_AUTO
	.comm	_RSA_PSS_SALTLEN_DIGEST,4,2     ## @RSA_PSS_SALTLEN_DIGEST
	.comm	_RSA_R_PSS_SALTLEN_TOO_SMALL,4,2 ## @RSA_R_PSS_SALTLEN_TOO_SMALL
	.comm	_RSA_MIN_MODULUS_BITS,4,2       ## @RSA_MIN_MODULUS_BITS
	.comm	_RSA_R_KEY_SIZE_TOO_SMALL,4,2   ## @RSA_R_KEY_SIZE_TOO_SMALL
	.comm	_RSA_R_BAD_E_VALUE,4,2          ## @RSA_R_BAD_E_VALUE
	.comm	_RSA_DEFAULT_PRIME_NUM,4,2      ## @RSA_DEFAULT_PRIME_NUM
	.comm	_RSA_MAX_PRIME_NUM,4,2          ## @RSA_MAX_PRIME_NUM
	.comm	_RSA_R_KEY_PRIME_NUM_INVALID,4,2 ## @RSA_R_KEY_PRIME_NUM_INVALID
	.comm	_RSA_R_INVALID_PADDING_MODE,4,2 ## @RSA_R_INVALID_PADDING_MODE
	.comm	_RSA_R_DIGEST_NOT_ALLOWED,4,2   ## @RSA_R_DIGEST_NOT_ALLOWED
	.comm	_RSA_R_INVALID_MGF1_MD,4,2      ## @RSA_R_INVALID_MGF1_MD
	.comm	_RSA_R_MGF1_DIGEST_NOT_ALLOWED,4,2 ## @RSA_R_MGF1_DIGEST_NOT_ALLOWED
	.comm	_RSA_R_OPERATION_NOT_SUPPORTED_FOR_THIS_KEYTYPE,4,2 ## @RSA_R_OPERATION_NOT_SUPPORTED_FOR_THIS_KEYTYPE
	.no_dead_strip	_pkey_rsa_ctrl
.subsections_via_symbols

	.section	__TEXT,__text,regular,pure_instructions
	.build_version macos, 13, 0	sdk_version 13, 3
	.p2align	2                               ; -- Begin function pkey_rsa_ctrl
_pkey_rsa_ctrl:                         ; @pkey_rsa_ctrl
	.cfi_startproc
; %bb.0:
	stp	x22, x21, [sp, #-48]!           ; 16-byte Folded Spill
	.cfi_def_cfa_offset 48
	stp	x20, x19, [sp, #16]             ; 16-byte Folded Spill
	stp	x29, x30, [sp, #32]             ; 16-byte Folded Spill
	add	x29, sp, #32
	.cfi_def_cfa w29, 16
	.cfi_offset w30, -8
	.cfi_offset w29, -16
	.cfi_offset w19, -24
	.cfi_offset w20, -32
	.cfi_offset w21, -40
	.cfi_offset w22, -48
	sub	w8, w1, #128
	cmp	w8, #22
	b.hi	LBB0_46
; %bb.1:
	mov	x21, x3
	mov	x20, x2
	mov	x22, x0
	ldr	x19, [x0, #8]
	mov	w0, #1
Lloh0:
	adrp	x9, lJTI0_0@PAGE
Lloh1:
	add	x9, x9, lJTI0_0@PAGEOFF
	adr	x10, LBB0_2
	ldrb	w11, [x9, x8]
	add	x10, x10, x11, lsl #2
	br	x10
LBB0_2:
	mov	x0, x22
	bl	_pkey_ctx_is_pss
	cbz	w0, LBB0_14
LBB0_3:
Lloh2:
	adrp	x8, _RSA_F_PKEY_RSA_CTRL@GOTPAGE
Lloh3:
	ldr	x8, [x8, _RSA_F_PKEY_RSA_CTRL@GOTPAGEOFF]
Lloh4:
	ldr	w0, [x8]
Lloh5:
	adrp	x8, _RSA_R_OPERATION_NOT_SUPPORTED_FOR_THIS_KEYTYPE@GOTPAGE
Lloh6:
	ldr	x8, [x8, _RSA_R_OPERATION_NOT_SUPPORTED_FOR_THIS_KEYTYPE@GOTPAGEOFF]
	b	LBB0_45
LBB0_4:
	ldr	w8, [x19, #8]
Lloh7:
	adrp	x9, _RSA_PKCS1_PSS_PADDING@GOTPAGE
Lloh8:
	ldr	x9, [x9, _RSA_PKCS1_PSS_PADDING@GOTPAGEOFF]
Lloh9:
	ldr	w9, [x9]
	cmp	w8, w9
	b.ne	LBB0_44
; %bb.5:
	cmp	w1, #141
	b.ne	LBB0_40
; %bb.6:
	ldr	w8, [x19, #12]
	b	LBB0_34
LBB0_7:
	ldr	w8, [x19, #8]
Lloh10:
	adrp	x9, _RSA_PKCS1_OAEP_PADDING@GOTPAGE
Lloh11:
	ldr	x9, [x9, _RSA_PKCS1_OAEP_PADDING@GOTPAGEOFF]
Lloh12:
	ldr	w9, [x9]
	cmp	w8, w9
	b.ne	LBB0_37
; %bb.8:
	cmp	w1, #143
	b.eq	LBB0_12
	b	LBB0_39
LBB0_9:
	ldr	w8, [x19, #8]
Lloh13:
	adrp	x9, _RSA_PKCS1_PSS_PADDING@GOTPAGE
Lloh14:
	ldr	x9, [x9, _RSA_PKCS1_PSS_PADDING@GOTPAGEOFF]
Lloh15:
	ldr	w9, [x9]
Lloh16:
	adrp	x10, _RSA_PKCS1_OAEP_PADDING@GOTPAGE
Lloh17:
	ldr	x10, [x10, _RSA_PKCS1_OAEP_PADDING@GOTPAGEOFF]
Lloh18:
	ldr	w10, [x10]
	cmp	w8, w9
	ccmp	w8, w10, #4, ne
	b.ne	LBB0_38
; %bb.10:
	cmp	w1, #145
	b.ne	LBB0_48
; %bb.11:
	ldr	x8, [x19, #32]
	cbnz	x8, LBB0_13
LBB0_12:
	ldr	x8, [x19]
LBB0_13:
	str	x8, [x21]
LBB0_14:
	mov	w0, #1
	b	LBB0_47
LBB0_15:
Lloh19:
	adrp	x8, _RSA_PKCS1_PADDING@GOTPAGE
Lloh20:
	ldr	x8, [x8, _RSA_PKCS1_PADDING@GOTPAGEOFF]
Lloh21:
	ldr	w8, [x8]
Lloh22:
	adrp	x21, _RSA_PKCS1_PSS_PADDING@GOTPAGE
Lloh23:
	ldr	x21, [x21, _RSA_PKCS1_PSS_PADDING@GOTPAGEOFF]
	ldr	w9, [x21]
	cmp	w8, w20
	ccmp	w9, w20, #8, le
	b.ge	LBB0_51
LBB0_16:
Lloh24:
	adrp	x8, _RSA_F_PKEY_RSA_CTRL@GOTPAGE
Lloh25:
	ldr	x8, [x8, _RSA_F_PKEY_RSA_CTRL@GOTPAGEOFF]
Lloh26:
	ldr	w0, [x8]
Lloh27:
	adrp	x8, _RSA_R_ILLEGAL_OR_UNSUPPORTED_PADDING_MODE@GOTPAGE
Lloh28:
	ldr	x8, [x8, _RSA_R_ILLEGAL_OR_UNSUPPORTED_PADDING_MODE@GOTPAGEOFF]
	b	LBB0_45
LBB0_17:
	ldr	w8, [x19, #8]
Lloh29:
	adrp	x9, _RSA_PKCS1_OAEP_PADDING@GOTPAGE
Lloh30:
	ldr	x9, [x9, _RSA_PKCS1_OAEP_PADDING@GOTPAGEOFF]
Lloh31:
	ldr	w9, [x9]
	cmp	w8, w9
	b.ne	LBB0_37
; %bb.18:
	ldr	x0, [x19, #40]
	bl	_OPENSSL_free
	cmp	w20, #1
	b.lt	LBB0_58
; %bb.19:
	cbz	x21, LBB0_58
; %bb.20:
	str	x21, [x19, #40]
	str	w20, [x19, #48]
	mov	w0, #1
	b	LBB0_47
LBB0_21:
	cbz	x21, LBB0_24
; %bb.22:
	mov	x0, x21
	bl	_BN_is_odd
	cbz	w0, LBB0_24
; %bb.23:
	mov	x0, x21
	bl	_BN_is_one
	cbz	w0, LBB0_66
LBB0_24:
Lloh32:
	adrp	x8, _RSA_F_PKEY_RSA_CTRL@GOTPAGE
Lloh33:
	ldr	x8, [x8, _RSA_F_PKEY_RSA_CTRL@GOTPAGEOFF]
Lloh34:
	ldr	w0, [x8]
Lloh35:
	adrp	x8, _RSA_R_BAD_E_VALUE@GOTPAGE
Lloh36:
	ldr	x8, [x8, _RSA_R_BAD_E_VALUE@GOTPAGEOFF]
	b	LBB0_45
LBB0_25:
Lloh37:
	adrp	x8, _RSA_DEFAULT_PRIME_NUM@GOTPAGE
Lloh38:
	ldr	x8, [x8, _RSA_DEFAULT_PRIME_NUM@GOTPAGEOFF]
Lloh39:
	ldr	w8, [x8]
Lloh40:
	adrp	x9, _RSA_MAX_PRIME_NUM@GOTPAGE
Lloh41:
	ldr	x9, [x9, _RSA_MAX_PRIME_NUM@GOTPAGEOFF]
Lloh42:
	ldr	w9, [x9]
	cmp	w8, w20
	ccmp	w9, w20, #8, le
	b.ge	LBB0_56
; %bb.26:
Lloh43:
	adrp	x8, _RSA_F_PKEY_RSA_CTRL@GOTPAGE
Lloh44:
	ldr	x8, [x8, _RSA_F_PKEY_RSA_CTRL@GOTPAGEOFF]
Lloh45:
	ldr	w0, [x8]
Lloh46:
	adrp	x8, _RSA_R_KEY_PRIME_NUM_INVALID@GOTPAGE
Lloh47:
	ldr	x8, [x8, _RSA_R_KEY_PRIME_NUM_INVALID@GOTPAGEOFF]
	b	LBB0_45
LBB0_27:
Lloh48:
	adrp	x8, _RSA_MIN_MODULUS_BITS@GOTPAGE
Lloh49:
	ldr	x8, [x8, _RSA_MIN_MODULUS_BITS@GOTPAGEOFF]
Lloh50:
	ldr	w8, [x8]
	cmp	w8, w20
	b.le	LBB0_57
; %bb.28:
Lloh51:
	adrp	x8, _RSA_F_PKEY_RSA_CTRL@GOTPAGE
Lloh52:
	ldr	x8, [x8, _RSA_F_PKEY_RSA_CTRL@GOTPAGEOFF]
Lloh53:
	ldr	w0, [x8]
Lloh54:
	adrp	x8, _RSA_R_KEY_SIZE_TOO_SMALL@GOTPAGE
Lloh55:
	ldr	x8, [x8, _RSA_R_KEY_SIZE_TOO_SMALL@GOTPAGEOFF]
	b	LBB0_45
LBB0_29:
	ldr	w1, [x19, #8]
	mov	x0, x21
	bl	_check_padding_md
	cbz	w0, LBB0_47
; %bb.30:
	mov	x0, x19
	bl	_rsa_pss_restricted
	cbz	w0, LBB0_39
; %bb.31:
	ldr	x0, [x19]
	bl	_EVP_MD_type
	mov	x19, x0
	mov	x0, x21
	bl	_EVP_MD_type
	cmp	w19, w0
	b.eq	LBB0_14
; %bb.32:
Lloh56:
	adrp	x8, _RSA_F_PKEY_RSA_CTRL@GOTPAGE
Lloh57:
	ldr	x8, [x8, _RSA_F_PKEY_RSA_CTRL@GOTPAGEOFF]
Lloh58:
	ldr	w0, [x8]
Lloh59:
	adrp	x8, _RSA_R_DIGEST_NOT_ALLOWED@GOTPAGE
Lloh60:
	ldr	x8, [x8, _RSA_R_DIGEST_NOT_ALLOWED@GOTPAGEOFF]
	b	LBB0_72
LBB0_33:
	ldr	w8, [x19, #8]
LBB0_34:
	str	w8, [x21]
	mov	w0, #1
	b	LBB0_47
LBB0_35:
	ldr	w8, [x19, #8]
Lloh61:
	adrp	x9, _RSA_PKCS1_OAEP_PADDING@GOTPAGE
Lloh62:
	ldr	x9, [x9, _RSA_PKCS1_OAEP_PADDING@GOTPAGEOFF]
Lloh63:
	ldr	w9, [x9]
	cmp	w8, w9
	b.ne	LBB0_37
; %bb.36:
	ldr	x8, [x19, #40]
	str	x8, [x21]
	ldr	w0, [x19, #48]
	b	LBB0_47
LBB0_37:
Lloh64:
	adrp	x8, _RSA_F_PKEY_RSA_CTRL@GOTPAGE
Lloh65:
	ldr	x8, [x8, _RSA_F_PKEY_RSA_CTRL@GOTPAGEOFF]
Lloh66:
	ldr	w0, [x8]
Lloh67:
	adrp	x8, _RSA_R_INVALID_PADDING_MODE@GOTPAGE
Lloh68:
	ldr	x8, [x8, _RSA_R_INVALID_PADDING_MODE@GOTPAGEOFF]
	b	LBB0_45
LBB0_38:
Lloh69:
	adrp	x8, _RSA_F_PKEY_RSA_CTRL@GOTPAGE
Lloh70:
	ldr	x8, [x8, _RSA_F_PKEY_RSA_CTRL@GOTPAGEOFF]
Lloh71:
	ldr	w0, [x8]
Lloh72:
	adrp	x8, _RSA_R_INVALID_MGF1_MD@GOTPAGE
Lloh73:
	ldr	x8, [x8, _RSA_R_INVALID_MGF1_MD@GOTPAGEOFF]
	b	LBB0_45
LBB0_39:
	str	x21, [x19]
	mov	w0, #1
	b	LBB0_47
LBB0_40:
Lloh74:
	adrp	x8, _RSA_PSS_SALTLEN_MAX@GOTPAGE
Lloh75:
	ldr	x8, [x8, _RSA_PSS_SALTLEN_MAX@GOTPAGEOFF]
Lloh76:
	ldr	w8, [x8]
	cmp	w8, w20
	b.gt	LBB0_46
; %bb.41:
	mov	x0, x19
	bl	_rsa_pss_restricted
	cbz	w0, LBB0_73
; %bb.42:
Lloh77:
	adrp	x8, _RSA_PSS_SALTLEN_AUTO@GOTPAGE
Lloh78:
	ldr	x8, [x8, _RSA_PSS_SALTLEN_AUTO@GOTPAGEOFF]
Lloh79:
	ldr	w8, [x8]
	cmp	w8, w20
	b.ne	LBB0_67
; %bb.43:
	ldr	w8, [x22]
Lloh80:
	adrp	x9, _EVP_PKEY_OP_VERIFY@GOTPAGE
Lloh81:
	ldr	x9, [x9, _EVP_PKEY_OP_VERIFY@GOTPAGEOFF]
Lloh82:
	ldr	w9, [x9]
	cmp	w8, w9
	b.ne	LBB0_67
LBB0_44:
Lloh83:
	adrp	x8, _RSA_F_PKEY_RSA_CTRL@GOTPAGE
Lloh84:
	ldr	x8, [x8, _RSA_F_PKEY_RSA_CTRL@GOTPAGEOFF]
Lloh85:
	ldr	w0, [x8]
Lloh86:
	adrp	x8, _RSA_R_INVALID_PSS_SALTLEN@GOTPAGE
Lloh87:
	ldr	x8, [x8, _RSA_R_INVALID_PSS_SALTLEN@GOTPAGEOFF]
LBB0_45:
	ldr	w1, [x8]
	bl	_RSAerr
LBB0_46:
	mov	w0, #-2
LBB0_47:
	ldp	x29, x30, [sp, #32]             ; 16-byte Folded Reload
	ldp	x20, x19, [sp, #16]             ; 16-byte Folded Reload
	ldp	x22, x21, [sp], #48             ; 16-byte Folded Reload
	ret
LBB0_48:
	mov	x0, x19
	bl	_rsa_pss_restricted
	cbz	w0, LBB0_59
; %bb.49:
	ldr	x0, [x19, #32]
	bl	_EVP_MD_type
	mov	x19, x0
	mov	x0, x21
	bl	_EVP_MD_type
	cmp	w19, w0
	b.eq	LBB0_14
; %bb.50:
Lloh88:
	adrp	x8, _RSA_F_PKEY_RSA_CTRL@GOTPAGE
Lloh89:
	ldr	x8, [x8, _RSA_F_PKEY_RSA_CTRL@GOTPAGEOFF]
Lloh90:
	ldr	w0, [x8]
Lloh91:
	adrp	x8, _RSA_R_MGF1_DIGEST_NOT_ALLOWED@GOTPAGE
Lloh92:
	ldr	x8, [x8, _RSA_R_MGF1_DIGEST_NOT_ALLOWED@GOTPAGEOFF]
	b	LBB0_72
LBB0_51:
	ldr	x0, [x19]
	mov	x1, x20
	bl	_check_padding_md
	cbz	w0, LBB0_47
; %bb.52:
	ldr	w8, [x21]
	cmp	w8, w20
	b.ne	LBB0_60
; %bb.53:
	ldr	w8, [x22]
Lloh93:
	adrp	x9, _EVP_PKEY_OP_SIGN@GOTPAGE
Lloh94:
	ldr	x9, [x9, _EVP_PKEY_OP_SIGN@GOTPAGEOFF]
Lloh95:
	ldr	w9, [x9]
Lloh96:
	adrp	x10, _EVP_PKEY_OP_VERIFY@GOTPAGE
Lloh97:
	ldr	x10, [x10, _EVP_PKEY_OP_VERIFY@GOTPAGEOFF]
Lloh98:
	ldr	w10, [x10]
	orr	w9, w10, w9
	tst	w9, w8
	b.eq	LBB0_16
; %bb.54:
	ldr	x8, [x19]
	cbnz	x8, LBB0_61
; %bb.55:
	bl	_EVP_sha1
	str	x0, [x19]
	b	LBB0_61
LBB0_56:
	str	w20, [x19, #24]
	mov	w0, #1
	b	LBB0_47
LBB0_57:
	str	w20, [x19, #20]
	mov	w0, #1
	b	LBB0_47
LBB0_58:
	str	xzr, [x19, #40]
	str	wzr, [x19, #48]
	mov	w0, #1
	b	LBB0_47
LBB0_59:
	str	x21, [x19, #32]
	mov	w0, #1
	b	LBB0_47
LBB0_60:
	mov	x0, x22
	bl	_pkey_ctx_is_pss
	cbnz	w0, LBB0_16
LBB0_61:
Lloh99:
	adrp	x8, _RSA_PKCS1_OAEP_PADDING@GOTPAGE
Lloh100:
	ldr	x8, [x8, _RSA_PKCS1_OAEP_PADDING@GOTPAGEOFF]
Lloh101:
	ldr	w8, [x8]
	cmp	w8, w20
	b.ne	LBB0_65
; %bb.62:
	ldr	w8, [x22]
Lloh102:
	adrp	x9, _EVP_PKEY_OP_TYPE_CRYPT@GOTPAGE
Lloh103:
	ldr	x9, [x9, _EVP_PKEY_OP_TYPE_CRYPT@GOTPAGEOFF]
Lloh104:
	ldr	w9, [x9]
	tst	w9, w8
	b.eq	LBB0_16
; %bb.63:
	ldr	x8, [x19]
	cbnz	x8, LBB0_65
; %bb.64:
	bl	_EVP_sha1
	str	x0, [x19]
LBB0_65:
	str	w20, [x19, #8]
	mov	w0, #1
	b	LBB0_47
LBB0_66:
	ldr	x0, [x19, #56]
	bl	_BN_free
	str	x21, [x19, #56]
	mov	w0, #1
	b	LBB0_47
LBB0_67:
Lloh105:
	adrp	x8, _RSA_PSS_SALTLEN_DIGEST@GOTPAGE
Lloh106:
	ldr	x8, [x8, _RSA_PSS_SALTLEN_DIGEST@GOTPAGEOFF]
Lloh107:
	ldr	w8, [x8]
	cmp	w8, w20
	b.ne	LBB0_69
; %bb.68:
	ldr	w21, [x19, #16]
	ldr	x0, [x19]
	bl	_EVP_MD_size
	cmp	w21, w0
	b.gt	LBB0_71
LBB0_69:
	tbnz	w20, #31, LBB0_73
; %bb.70:
	ldr	w8, [x19, #16]
	cmp	w8, w20
	b.le	LBB0_73
LBB0_71:
Lloh108:
	adrp	x8, _RSA_F_PKEY_RSA_CTRL@GOTPAGE
Lloh109:
	ldr	x8, [x8, _RSA_F_PKEY_RSA_CTRL@GOTPAGEOFF]
Lloh110:
	ldr	w0, [x8]
Lloh111:
	adrp	x8, _RSA_R_PSS_SALTLEN_TOO_SMALL@GOTPAGE
Lloh112:
	ldr	x8, [x8, _RSA_R_PSS_SALTLEN_TOO_SMALL@GOTPAGEOFF]
LBB0_72:
	ldr	w1, [x8]
	bl	_RSAerr
	mov	w0, #0
	b	LBB0_47
LBB0_73:
	str	w20, [x19, #12]
	mov	w0, #1
	b	LBB0_47
	.loh AdrpAdd	Lloh0, Lloh1
	.loh AdrpLdrGot	Lloh5, Lloh6
	.loh AdrpLdrGotLdr	Lloh2, Lloh3, Lloh4
	.loh AdrpLdrGotLdr	Lloh7, Lloh8, Lloh9
	.loh AdrpLdrGotLdr	Lloh10, Lloh11, Lloh12
	.loh AdrpLdrGotLdr	Lloh16, Lloh17, Lloh18
	.loh AdrpLdrGotLdr	Lloh13, Lloh14, Lloh15
	.loh AdrpLdrGot	Lloh22, Lloh23
	.loh AdrpLdrGotLdr	Lloh19, Lloh20, Lloh21
	.loh AdrpLdrGot	Lloh27, Lloh28
	.loh AdrpLdrGotLdr	Lloh24, Lloh25, Lloh26
	.loh AdrpLdrGotLdr	Lloh29, Lloh30, Lloh31
	.loh AdrpLdrGot	Lloh35, Lloh36
	.loh AdrpLdrGotLdr	Lloh32, Lloh33, Lloh34
	.loh AdrpLdrGotLdr	Lloh40, Lloh41, Lloh42
	.loh AdrpLdrGotLdr	Lloh37, Lloh38, Lloh39
	.loh AdrpLdrGot	Lloh46, Lloh47
	.loh AdrpLdrGotLdr	Lloh43, Lloh44, Lloh45
	.loh AdrpLdrGotLdr	Lloh48, Lloh49, Lloh50
	.loh AdrpLdrGot	Lloh54, Lloh55
	.loh AdrpLdrGotLdr	Lloh51, Lloh52, Lloh53
	.loh AdrpLdrGot	Lloh59, Lloh60
	.loh AdrpLdrGotLdr	Lloh56, Lloh57, Lloh58
	.loh AdrpLdrGotLdr	Lloh61, Lloh62, Lloh63
	.loh AdrpLdrGot	Lloh67, Lloh68
	.loh AdrpLdrGotLdr	Lloh64, Lloh65, Lloh66
	.loh AdrpLdrGot	Lloh72, Lloh73
	.loh AdrpLdrGotLdr	Lloh69, Lloh70, Lloh71
	.loh AdrpLdrGotLdr	Lloh74, Lloh75, Lloh76
	.loh AdrpLdrGotLdr	Lloh77, Lloh78, Lloh79
	.loh AdrpLdrGotLdr	Lloh80, Lloh81, Lloh82
	.loh AdrpLdrGot	Lloh86, Lloh87
	.loh AdrpLdrGotLdr	Lloh83, Lloh84, Lloh85
	.loh AdrpLdrGot	Lloh91, Lloh92
	.loh AdrpLdrGotLdr	Lloh88, Lloh89, Lloh90
	.loh AdrpLdrGotLdr	Lloh96, Lloh97, Lloh98
	.loh AdrpLdrGotLdr	Lloh93, Lloh94, Lloh95
	.loh AdrpLdrGotLdr	Lloh99, Lloh100, Lloh101
	.loh AdrpLdrGotLdr	Lloh102, Lloh103, Lloh104
	.loh AdrpLdrGotLdr	Lloh105, Lloh106, Lloh107
	.loh AdrpLdrGot	Lloh111, Lloh112
	.loh AdrpLdrGotLdr	Lloh108, Lloh109, Lloh110
	.cfi_endproc
	.section	__TEXT,__const
lJTI0_0:
	.byte	(LBB0_4-LBB0_2)>>2
	.byte	(LBB0_15-LBB0_2)>>2
	.byte	(LBB0_7-LBB0_2)>>2
	.byte	(LBB0_17-LBB0_2)>>2
	.byte	(LBB0_9-LBB0_2)>>2
	.byte	(LBB0_21-LBB0_2)>>2
	.byte	(LBB0_25-LBB0_2)>>2
	.byte	(LBB0_27-LBB0_2)>>2
	.byte	(LBB0_47-LBB0_2)>>2
	.byte	(LBB0_2-LBB0_2)>>2
	.byte	(LBB0_2-LBB0_2)>>2
	.byte	(LBB0_3-LBB0_2)>>2
	.byte	(LBB0_29-LBB0_2)>>2
	.byte	(LBB0_4-LBB0_2)>>2
	.byte	(LBB0_33-LBB0_2)>>2
	.byte	(LBB0_7-LBB0_2)>>2
	.byte	(LBB0_35-LBB0_2)>>2
	.byte	(LBB0_9-LBB0_2)>>2
	.byte	(LBB0_12-LBB0_2)>>2
	.byte	(LBB0_47-LBB0_2)>>2
	.byte	(LBB0_47-LBB0_2)>>2
	.byte	(LBB0_2-LBB0_2)>>2
	.byte	(LBB0_2-LBB0_2)>>2
                                        ; -- End function
	.comm	_RSA_PKCS1_PADDING,4,2          ; @RSA_PKCS1_PADDING
	.comm	_RSA_PKCS1_PSS_PADDING,4,2      ; @RSA_PKCS1_PSS_PADDING
	.comm	_EVP_PKEY_OP_SIGN,4,2           ; @EVP_PKEY_OP_SIGN
	.comm	_EVP_PKEY_OP_VERIFY,4,2         ; @EVP_PKEY_OP_VERIFY
	.comm	_RSA_PKCS1_OAEP_PADDING,4,2     ; @RSA_PKCS1_OAEP_PADDING
	.comm	_EVP_PKEY_OP_TYPE_CRYPT,4,2     ; @EVP_PKEY_OP_TYPE_CRYPT
	.comm	_RSA_F_PKEY_RSA_CTRL,4,2        ; @RSA_F_PKEY_RSA_CTRL
	.comm	_RSA_R_ILLEGAL_OR_UNSUPPORTED_PADDING_MODE,4,2 ; @RSA_R_ILLEGAL_OR_UNSUPPORTED_PADDING_MODE
	.comm	_RSA_R_INVALID_PSS_SALTLEN,4,2  ; @RSA_R_INVALID_PSS_SALTLEN
	.comm	_RSA_PSS_SALTLEN_MAX,4,2        ; @RSA_PSS_SALTLEN_MAX
	.comm	_RSA_PSS_SALTLEN_AUTO,4,2       ; @RSA_PSS_SALTLEN_AUTO
	.comm	_RSA_PSS_SALTLEN_DIGEST,4,2     ; @RSA_PSS_SALTLEN_DIGEST
	.comm	_RSA_R_PSS_SALTLEN_TOO_SMALL,4,2 ; @RSA_R_PSS_SALTLEN_TOO_SMALL
	.comm	_RSA_MIN_MODULUS_BITS,4,2       ; @RSA_MIN_MODULUS_BITS
	.comm	_RSA_R_KEY_SIZE_TOO_SMALL,4,2   ; @RSA_R_KEY_SIZE_TOO_SMALL
	.comm	_RSA_R_BAD_E_VALUE,4,2          ; @RSA_R_BAD_E_VALUE
	.comm	_RSA_DEFAULT_PRIME_NUM,4,2      ; @RSA_DEFAULT_PRIME_NUM
	.comm	_RSA_MAX_PRIME_NUM,4,2          ; @RSA_MAX_PRIME_NUM
	.comm	_RSA_R_KEY_PRIME_NUM_INVALID,4,2 ; @RSA_R_KEY_PRIME_NUM_INVALID
	.comm	_RSA_R_INVALID_PADDING_MODE,4,2 ; @RSA_R_INVALID_PADDING_MODE
	.comm	_RSA_R_DIGEST_NOT_ALLOWED,4,2   ; @RSA_R_DIGEST_NOT_ALLOWED
	.comm	_RSA_R_INVALID_MGF1_MD,4,2      ; @RSA_R_INVALID_MGF1_MD
	.comm	_RSA_R_MGF1_DIGEST_NOT_ALLOWED,4,2 ; @RSA_R_MGF1_DIGEST_NOT_ALLOWED
	.comm	_RSA_R_OPERATION_NOT_SUPPORTED_FOR_THIS_KEYTYPE,4,2 ; @RSA_R_OPERATION_NOT_SUPPORTED_FOR_THIS_KEYTYPE
	.no_dead_strip	_pkey_rsa_ctrl
.subsections_via_symbols
