	.file	"extr_dirac_arith.h_dirac_get_arith_bit.c"
	.intel_syntax noprefix
	.text
	.p2align 4
	.type	dirac_get_arith_bit, @function
dirac_get_arith_bit:
.LFB0:
	.cfi_startproc
	endbr64
	push	r12
	.cfi_def_cfa_offset 16
	.cfi_offset 12, -16
	movsx	rsi, esi
	xor	r12d, r12d
	push	rbp
	.cfi_def_cfa_offset 24
	.cfi_offset 6, -24
	mov	rbp, rdi
	sub	rsp, 8
	.cfi_def_cfa_offset 32
	mov	rax, QWORD PTR [rdi]
	mov	r9d, DWORD PTR 12[rdi]
	lea	r8, [rax+rsi*4]
	mov	esi, DWORD PTR 8[rdi]
	mov	edx, DWORD PTR [r8]
	mov	ecx, esi
	mov	edi, edx
	shr	ecx, 16
	imul	edi, r9d
	mov	eax, edi
	sar	eax, 16
	cmp	ecx, eax
	mov	r10d, eax
	setnb	r12b
	jb	.L2
	xor	di, di
	sub	r9d, eax
	sub	esi, edi
	mov	eax, r9d
.L2:
	mov	edi, edx
	mov	r9, QWORD PTR ff_dirac_prob_branchless[rip]
	sar	edi, 8
	cmp	ecx, r10d
	sbb	rcx, rcx
	movsx	rdi, edi
	mov	rdi, QWORD PTR [r9+rdi*8]
	not	rcx
	and	ecx, 8
	add	edx, DWORD PTR [rdi+rcx]
	mov	rdi, rbp
	mov	DWORD PTR [r8], edx
	mov	DWORD PTR 8[rbp], esi
	mov	DWORD PTR 12[rbp], eax
	call	renorm@PLT
	mov	rdi, rbp
	call	refill@PLT
	add	rsp, 8
	.cfi_def_cfa_offset 24
	mov	eax, r12d
	pop	rbp
	.cfi_def_cfa_offset 16
	pop	r12
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE0:
	.size	dirac_get_arith_bit, .-dirac_get_arith_bit
	.comm	ff_dirac_prob_branchless,8,8
	.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_dirac_arith.h_dirac_get_arith_bit.c"
	.text
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	dirac_get_arith_bit, %function
dirac_get_arith_bit:
	@ args = 0, pretend = 0, frame = 0
	@ frame_needed = 0, uses_anonymous_args = 0
	push	{r4, r5, r6, r7, r8, lr}
	ldr	r6, [r0]
	ldr	r7, [r0, #8]
	ldr	lr, [r6, r1, lsl #2]
	ldr	ip, [r0, #4]
	mov	r4, r0
	mul	r0, r7, lr
	asr	r3, r0, #16
	mov	r8, r3
	lsr	r2, ip, #16
	cmp	r2, r3
	lsrcs	r0, r0, #16
	lslcs	r0, r0, #16
	subcs	ip, ip, r0
	subcs	r3, r7, r3
	movcs	r5, #1
	movcc	r5, #0
	cmp	r2, r8
	movcs	r2, #4
	movcc	r2, #0
	ldr	r0, .L5
	asr	r8, lr, #8
	ldr	r7, [r0]
	mov	r0, r4
	ldr	r7, [r7, r8, lsl #2]
	ldr	r2, [r7, r2]
	add	r2, r2, lr
	str	r2, [r6, r1, lsl #2]
	str	ip, [r4, #4]
	str	r3, [r4, #8]
	bl	renorm
	mov	r0, r4
	bl	refill
	mov	r0, r5
	pop	{r4, r5, r6, r7, r8, pc}
.L6:
	.align	2
.L5:
	.word	ff_dirac_prob_branchless
	.size	dirac_get_arith_bit, .-dirac_get_arith_bit
	.comm	ff_dirac_prob_branchless,4,4
	.ident	"GCC: (Ubuntu 9.4.0-1ubuntu1~20.04.2) 9.4.0"
	.section	.note.GNU-stack,"",%progbits
