	.file	"extr_lhash.c_openssl_lh_strcasehash.c"
	.intel_syntax noprefix
	.text
	.p2align 4
	.globl	openssl_lh_strcasehash
	.type	openssl_lh_strcasehash, @function
openssl_lh_strcasehash:
.LFB0:
	.cfi_startproc
	endbr64
	test	rdi, rdi
	je	.L4
	push	r13
	.cfi_def_cfa_offset 16
	.cfi_offset 13, -16
	xor	eax, eax
	push	r12
	.cfi_def_cfa_offset 24
	.cfi_offset 12, -24
	mov	r12, rdi
	push	rbp
	.cfi_def_cfa_offset 32
	.cfi_offset 6, -32
	push	rbx
	.cfi_def_cfa_offset 40
	.cfi_offset 3, -40
	sub	rsp, 8
	.cfi_def_cfa_offset 48
	movsx	edi, BYTE PTR [rdi]
	test	dil, dil
	je	.L1
	mov	r13d, 256
	xor	ebp, ebp
	mov	ebx, 32
	.p2align 4,,10
	.p2align 3
.L3:
	call	ossl_tolower@PLT
	mov	esi, ebx
	mov	rdx, rbp
	movsx	edi, BYTE PTR 1[r12]
	or	rax, r13
	add	r12, 1
	add	r13, 256
	mov	rcx, rax
	shr	rcx, 2
	xor	ecx, eax
	imul	rax, rax
	and	ecx, 15
	sub	esi, ecx
	sal	rdx, cl
	mov	ecx, esi
	shr	rbp, cl
	or	ebp, edx
	xor	rbp, rax
	test	dil, dil
	jne	.L3
	mov	rax, rbp
	shr	rax, 16
	xor	rax, rbp
.L1:
	add	rsp, 8
	.cfi_def_cfa_offset 40
	pop	rbx
	.cfi_def_cfa_offset 32
	pop	rbp
	.cfi_def_cfa_offset 24
	pop	r12
	.cfi_def_cfa_offset 16
	pop	r13
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L4:
	.cfi_restore 3
	.cfi_restore 6
	.cfi_restore 12
	.cfi_restore 13
	xor	eax, eax
	ret
	.cfi_endproc
.LFE0:
	.size	openssl_lh_strcasehash, .-openssl_lh_strcasehash
	.ident	"GCC: (Ubuntu 9.4.0-1ubuntu1~20.04.2) 9.4.0"
	.section	.note.GNU-stack,"",@progbits
	.section	.note.gnu.property,"a"
	.align 8
	.long	 1f - 0f
	.long	 4f - 1f
	.long	 5
0:
	.string	 "GNU"
1:
	.align 8
	.long	 0xc0000002
	.long	 3f - 2f
2:
	.long	 0x3
3:
	.align 8
4:

	.arch armv5t
	.eabi_attribute 20, 1
	.eabi_attribute 21, 1
	.eabi_attribute 23, 3
	.eabi_attribute 24, 1
	.eabi_attribute 25, 1
	.eabi_attribute 26, 2
	.eabi_attribute 30, 2
	.eabi_attribute 34, 0
	.eabi_attribute 18, 4
	.file	"extr_lhash.c_openssl_lh_strcasehash.c"
	.text
	.align	2
	.global	openssl_lh_strcasehash
	.syntax unified
	.arm
	.fpu softvfp
	.type	openssl_lh_strcasehash, %function
openssl_lh_strcasehash:
	@ args = 0, pretend = 0, frame = 0
	@ frame_needed = 0, uses_anonymous_args = 0
	push	{r4, r5, r6, lr}
	subs	r4, r0, #0
	beq	.L4
	ldrb	r0, [r4]	@ zero_extendqisi2
	cmp	r0, #0
	popeq	{r4, r5, r6, pc}
	mov	r5, #256
	mov	r6, #0
.L3:
	bl	ossl_tolower
	orr	r0, r0, r5
	mul	r2, r0, r0
	eor	r3, r0, r0, lsr #2
	ldrb	r0, [r4, #1]!	@ zero_extendqisi2
	and	r3, r3, #15
	rsb	r3, r3, #32
	cmp	r0, #0
	add	r5, r5, #256
	eor	r6, r2, r6, ror r3
	bne	.L3
	eor	r0, r6, r6, lsr #16
	pop	{r4, r5, r6, pc}
.L4:
	mov	r0, r4
	pop	{r4, r5, r6, pc}
	.size	openssl_lh_strcasehash, .-openssl_lh_strcasehash
	.ident	"GCC: (Ubuntu 9.4.0-1ubuntu1~20.04.2) 9.4.0"
	.section	.note.GNU-stack,"",%progbits
