	.file	"extr_crypt_blowfish.c_BF_set_key.c"
	.intel_syntax noprefix
	.text
	.p2align 4
	.type	BF_set_key, @function
BF_set_key:
.LFB0:
	.cfi_startproc
	endbr64
	push	r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	push	r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	movzx	r14d, cl
	push	r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	sal	r14d, 15
	push	r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	mov	r12d, ecx
	push	rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	and	r12d, 1
	push	rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	mov	rbx, rdx
	sub	rsp, 24
	.cfi_def_cfa_offset 80
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR 8[rsp], rax
	xor	eax, eax
	cmp	DWORD PTR BF_N[rip], -2
	je	.L11
	mov	r13, QWORD PTR BF_init_state[rip]
	mov	rbp, rsi
	mov	r10, rdi
	xor	esi, esi
	xor	r11d, r11d
	xor	edx, edx
	.p2align 4,,10
	.p2align 3
.L7:
	xor	r9d, r9d
	xor	eax, eax
	xor	ecx, ecx
.L6:
	movzx	r15d, BYTE PTR [r10]
	sal	ecx, 8
	sal	eax, 8
	mov	r8d, r15d
	or	ecx, r15d
	movsx	r15d, r15b
	or	eax, r15d
	test	r9d, r9d
	je	.L3
	mov	r15d, eax
	and	r15d, 128
	or	r11d, r15d
	test	r8b, r8b
	jne	.L9
	mov	r10, rdi
	cmp	r9d, 3
	je	.L18
.L8:
	add	r9d, 1
	jmp	.L6
	.p2align 4,,10
	.p2align 3
.L9:
	add	r10, 1
	cmp	r9d, 3
	jne	.L8
.L18:
	mov	DWORD PTR 4[rsp], eax
	xor	eax, ecx
	mov	DWORD PTR [rsp], ecx
	or	esi, eax
	mov	eax, DWORD PTR [rsp+r12*4]
	mov	ecx, edx
	add	edx, 1
	mov	DWORD PTR 0[rbp+rcx*4], eax
	xor	eax, DWORD PTR 0[r13+rcx*4]
	mov	DWORD PTR [rbx+rcx*4], eax
	mov	eax, DWORD PTR BF_N[rip]
	add	eax, 2
	cmp	eax, edx
	ja	.L7
	mov	eax, esi
	sal	r11d, 9
	sar	eax, 16
	and	r14d, r11d
	or	esi, eax
	movzx	eax, si
	add	eax, 65535
	not	eax
	and	r14d, eax
.L2:
	xor	DWORD PTR [rbx], r14d
	mov	rax, QWORD PTR 8[rsp]
	xor	rax, QWORD PTR fs:40
	jne	.L19
	add	rsp, 24
	.cfi_remember_state
	.cfi_def_cfa_offset 56
	pop	rbx
	.cfi_def_cfa_offset 48
	pop	rbp
	.cfi_def_cfa_offset 40
	pop	r12
	.cfi_def_cfa_offset 32
	pop	r13
	.cfi_def_cfa_offset 24
	pop	r14
	.cfi_def_cfa_offset 16
	pop	r15
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L3:
	.cfi_restore_state
	test	r8b, r8b
	jne	.L9
	mov	r10, rdi
	jmp	.L8
.L11:
	xor	r14d, r14d
	jmp	.L2
.L19:
	call	__stack_chk_fail@PLT
	.cfi_endproc
.LFE0:
	.size	BF_set_key, .-BF_set_key
	.comm	BF_init_state,8,8
	.comm	BF_N,4,4
	.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_crypt_blowfish.c_BF_set_key.c"
	.text
	.section	.rodata.cst4,"aM",%progbits,4
	.align	2
.LC0:
	.word	__stack_chk_guard
	.text
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	BF_set_key, %function
BF_set_key:
	@ args = 0, pretend = 0, frame = 32
	@ frame_needed = 0, uses_anonymous_args = 0
	push	{r4, r5, r6, r7, r8, r9, r10, fp, lr}
	ldr	fp, .L20
	sub	sp, sp, #36
	ldr	ip, [fp]
	str	r2, [sp, #8]
	cmn	ip, #2
	ldr	ip, .L20+4
	and	r10, r3, #1
	lsl	r3, r3, #15
	ldr	ip, [ip]
	str	ip, [sp, #28]
	mov	ip,#0
	str	r3, [sp, #12]
	beq	.L11
	mov	r6, #0
	mov	r4, r0
	mov	r5, r6
	mov	r7, r6
	ldr	r3, .L20+8
	sub	r8, r1, #4
	ldr	r9, [r3]
	add	r3, sp, #32
	add	r10, r3, r10, lsl #2
	sub	r3, r2, #4
	sub	r9, r9, #4
	str	r3, [sp, #4]
.L7:
	mov	r3, #0
	mov	ip, r3
	mov	lr, r3
.L6:
	ldrb	r2, [r4]	@ zero_extendqisi2
	cmp	r3, #0
	lsl	r1, r2, #24
	asr	r1, r1, #24
	orr	lr, r2, lr, lsl #8
	orr	ip, r1, ip, lsl #8
	beq	.L3
	cmp	r2, #0
	and	r2, ip, #128
	moveq	r4, r0
	orr	r5, r5, r2
	beq	.L4
.L9:
	add	r4, r4, #1
.L4:
	cmp	r3, #3
	beq	.L18
.L8:
	add	r3, r3, #1
	b	.L6
.L3:
	cmp	r2, #0
	bne	.L9
	mov	r4, r0
	b	.L8
.L18:
	str	ip, [sp, #24]
	str	lr, [sp, #20]
	ldr	r2, [r10, #-12]
	add	r7, r7, #1
	str	r2, [r8, #4]!
	ldr	r3, [r9, #4]!
	eor	ip, ip, lr
	eor	r3, r3, r2
	ldr	r2, [sp, #4]
	orr	r6, r6, ip
	str	r3, [r2, #4]!
	ldr	r3, [fp]
	str	r2, [sp, #4]
	add	r3, r3, #2
	cmp	r3, r7
	bhi	.L7
	orr	r3, r6, r6, asr #16
	lsl	r3, r3, #16
	ldr	r2, [sp, #12]
	lsr	r3, r3, #16
	add	r3, r3, #65280
	add	r3, r3, #255
	and	r5, r2, r5, lsl #9
	bic	r3, r5, r3
.L2:
	ldr	r1, [sp, #8]
	ldr	r2, [r1]
	eor	r3, r3, r2
	str	r3, [r1]
	ldr	r3, .L20+4
	ldr	r2, [r3]
	ldr	r3, [sp, #28]
	eors	r2, r3, r2
	mov	r3, #0
	bne	.L19
	add	sp, sp, #36
	@ sp needed
	pop	{r4, r5, r6, r7, r8, r9, r10, fp, pc}
.L11:
	mov	r3, #0
	b	.L2
.L19:
	bl	__stack_chk_fail
.L21:
	.align	2
.L20:
	.word	BF_N
	.word	.LC0
	.word	BF_init_state
	.size	BF_set_key, .-BF_set_key
	.comm	BF_init_state,4,4
	.comm	BF_N,4,4
	.ident	"GCC: (Ubuntu 9.4.0-1ubuntu1~20.04.2) 9.4.0"
	.section	.note.GNU-stack,"",%progbits
