	.section	__TEXT,__text,regular,pure_instructions
	.build_version macos, 13, 0	sdk_version 13, 3
	.section	__TEXT,__literal16,16byte_literals
	.p2align	4                               ## -- Begin function gf2k_get_bits
LCPI0_0:
	.long	0                               ## 0x0
	.long	1                               ## 0x1
	.long	2                               ## 0x2
	.long	3                               ## 0x3
LCPI0_1:
	.long	3                               ## 0x3
	.long	3                               ## 0x3
	.long	3                               ## 0x3
	.long	3                               ## 0x3
LCPI0_2:
	.long	12                              ## 0xc
	.long	12                              ## 0xc
	.long	12                              ## 0xc
	.long	12                              ## 0xc
LCPI0_3:
	.long	1065353216                      ## 0x3f800000
	.long	1065353216                      ## 0x3f800000
	.long	1065353216                      ## 0x3f800000
	.long	1065353216                      ## 0x3f800000
LCPI0_4:
	.byte	255                             ## 0xff
	.byte	0                               ## 0x0
	.byte	0                               ## 0x0
	.byte	0                               ## 0x0
	.byte	255                             ## 0xff
	.byte	0                               ## 0x0
	.byte	0                               ## 0x0
	.byte	0                               ## 0x0
	.byte	255                             ## 0xff
	.byte	0                               ## 0x0
	.byte	0                               ## 0x0
	.byte	0                               ## 0x0
	.byte	255                             ## 0xff
	.byte	0                               ## 0x0
	.byte	0                               ## 0x0
	.byte	0                               ## 0x0
LCPI0_5:
	.long	8                               ## 0x8
	.long	8                               ## 0x8
	.long	8                               ## 0x8
	.long	8                               ## 0x8
	.section	__TEXT,__text,regular,pure_instructions
	.p2align	4, 0x90
_gf2k_get_bits:                         ## @gf2k_get_bits
	.cfi_startproc
## %bb.0:
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset %rbp, -16
	movq	%rsp, %rbp
	.cfi_def_cfa_register %rbp
	pushq	%rbx
	.cfi_offset %rbx, -24
	movl	%ecx, %r8d
	movl	%edx, %r9d
	xorl	%edx, %edx
	movslq	%esi, %r11
	cmpl	$-5, %r9d
	jl	LBB0_8
## %bb.1:
	movslq	%r9d, %rax
	imulq	$1431655766, %rax, %rax         ## imm = 0x55555556
	movq	%rax, %rcx
	shrq	$32, %rcx
	shrq	$63, %rax
	imulq	$1431655766, %r11, %rdx         ## imm = 0x55555556
	movq	%rdx, %rsi
	shrq	$63, %rsi
	shrq	$32, %rdx
	addl	%esi, %edx
	movslq	%edx, %r10
	leal	(%rcx,%rax), %ebx
	addl	$2, %ebx
	cmpl	$8, %ebx
	jae	LBB0_3
## %bb.2:
	xorl	%eax, %eax
	xorl	%edx, %edx
	jmp	LBB0_6
LBB0_3:
	movl	%ebx, %eax
	andl	$-8, %eax
	leaq	(%r10,%rdi), %rcx
	addq	$4, %rcx
	movdqa	LCPI0_0(%rip), %xmm7            ## xmm7 = [0,1,2,3]
	pxor	%xmm0, %xmm0
	xorl	%edx, %edx
	movdqa	LCPI0_1(%rip), %xmm8            ## xmm8 = [3,3,3,3]
	movdqa	LCPI0_2(%rip), %xmm9            ## xmm9 = [12,12,12,12]
	movdqa	LCPI0_3(%rip), %xmm11           ## xmm11 = [1065353216,1065353216,1065353216,1065353216]
	movdqa	LCPI0_4(%rip), %xmm6            ## xmm6 = [255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0]
	movdqa	LCPI0_5(%rip), %xmm10           ## xmm10 = [8,8,8,8]
	pxor	%xmm4, %xmm4
	.p2align	4, 0x90
LBB0_4:                                 ## =>This Inner Loop Header: Depth=1
	pmovzxbd	-4(%rcx,%rdx), %xmm2            ## xmm2 = mem[0],zero,zero,zero,mem[1],zero,zero,zero,mem[2],zero,zero,zero,mem[3],zero,zero,zero
	pmovzxbd	(%rcx,%rdx), %xmm3              ## xmm3 = mem[0],zero,zero,zero,mem[1],zero,zero,zero,mem[2],zero,zero,zero,mem[3],zero,zero,zero
	movdqa	%xmm7, %xmm1
	pmulld	%xmm8, %xmm1
	movdqa	%xmm1, %xmm5
	paddd	%xmm9, %xmm5
	pslld	$23, %xmm1
	paddd	%xmm11, %xmm1
	cvttps2dq	%xmm1, %xmm1
	pmulld	%xmm2, %xmm1
	pslld	$23, %xmm5
	paddd	%xmm11, %xmm5
	cvttps2dq	%xmm5, %xmm2
	pmulld	%xmm3, %xmm2
	pand	%xmm6, %xmm1
	por	%xmm1, %xmm0
	pand	%xmm6, %xmm2
	por	%xmm2, %xmm4
	addq	$8, %rdx
	paddd	%xmm10, %xmm7
	cmpq	%rdx, %rax
	jne	LBB0_4
## %bb.5:
	por	%xmm0, %xmm4
	pshufd	$238, %xmm4, %xmm0              ## xmm0 = xmm4[2,3,2,3]
	por	%xmm4, %xmm0
	pshufd	$85, %xmm0, %xmm1               ## xmm1 = xmm0[1,1,1,1]
	por	%xmm0, %xmm1
	movd	%xmm1, %edx
	cmpq	%rbx, %rax
	je	LBB0_8
LBB0_6:
	leal	(%rax,%rax,2), %ecx
	addq	%r10, %rdi
	.p2align	4, 0x90
LBB0_7:                                 ## =>This Inner Loop Header: Depth=1
	movzbl	(%rdi,%rax), %esi
	shll	%cl, %esi
	incq	%rax
	movzbl	%sil, %esi
	orl	%esi, %edx
	addl	$3, %ecx
	cmpq	%rax, %rbx
	jne	LBB0_7
LBB0_8:
	imulq	$1431655766, %r11, %rax         ## imm = 0x55555556
	movq	%rax, %rcx
	shrq	$63, %rcx
	shrq	$32, %rax
	addl	%ecx, %eax
	leal	(%rax,%rax,2), %eax
	subl	%eax, %r11d
	movl	%r11d, %ecx
	sarl	%cl, %edx
	movl	$-1, %eax
	movl	%r9d, %ecx
	shll	%cl, %eax
	notl	%eax
	andl	%edx, %eax
	movl	%r8d, %ecx
	shll	%cl, %eax
	movzbl	%al, %eax
	popq	%rbx
	popq	%rbp
	retq
	.cfi_endproc
                                        ## -- End function
	.no_dead_strip	_gf2k_get_bits
.subsections_via_symbols

	.section	__TEXT,__text,regular,pure_instructions
	.build_version macos, 13, 0	sdk_version 13, 3
	.section	__TEXT,__literal16,16byte_literals
	.p2align	4                               ; -- Begin function gf2k_get_bits
lCPI0_0:
	.long	12                              ; 0xc
	.long	13                              ; 0xd
	.long	14                              ; 0xe
	.long	15                              ; 0xf
lCPI0_1:
	.long	8                               ; 0x8
	.long	9                               ; 0x9
	.long	10                              ; 0xa
	.long	11                              ; 0xb
lCPI0_2:
	.long	4                               ; 0x4
	.long	5                               ; 0x5
	.long	6                               ; 0x6
	.long	7                               ; 0x7
lCPI0_3:
	.long	0                               ; 0x0
	.long	1                               ; 0x1
	.long	2                               ; 0x2
	.long	3                               ; 0x3
lCPI0_4:
	.byte	12                              ; 0xc
	.byte	255                             ; 0xff
	.byte	255                             ; 0xff
	.byte	255                             ; 0xff
	.byte	13                              ; 0xd
	.byte	255                             ; 0xff
	.byte	255                             ; 0xff
	.byte	255                             ; 0xff
	.byte	14                              ; 0xe
	.byte	255                             ; 0xff
	.byte	255                             ; 0xff
	.byte	255                             ; 0xff
	.byte	15                              ; 0xf
	.byte	255                             ; 0xff
	.byte	255                             ; 0xff
	.byte	255                             ; 0xff
lCPI0_5:
	.byte	8                               ; 0x8
	.byte	255                             ; 0xff
	.byte	255                             ; 0xff
	.byte	255                             ; 0xff
	.byte	9                               ; 0x9
	.byte	255                             ; 0xff
	.byte	255                             ; 0xff
	.byte	255                             ; 0xff
	.byte	10                              ; 0xa
	.byte	255                             ; 0xff
	.byte	255                             ; 0xff
	.byte	255                             ; 0xff
	.byte	11                              ; 0xb
	.byte	255                             ; 0xff
	.byte	255                             ; 0xff
	.byte	255                             ; 0xff
lCPI0_6:
	.byte	0                               ; 0x0
	.byte	255                             ; 0xff
	.byte	255                             ; 0xff
	.byte	255                             ; 0xff
	.byte	1                               ; 0x1
	.byte	255                             ; 0xff
	.byte	255                             ; 0xff
	.byte	255                             ; 0xff
	.byte	2                               ; 0x2
	.byte	255                             ; 0xff
	.byte	255                             ; 0xff
	.byte	255                             ; 0xff
	.byte	3                               ; 0x3
	.byte	255                             ; 0xff
	.byte	255                             ; 0xff
	.byte	255                             ; 0xff
lCPI0_7:
	.byte	4                               ; 0x4
	.byte	255                             ; 0xff
	.byte	255                             ; 0xff
	.byte	255                             ; 0xff
	.byte	5                               ; 0x5
	.byte	255                             ; 0xff
	.byte	255                             ; 0xff
	.byte	255                             ; 0xff
	.byte	6                               ; 0x6
	.byte	255                             ; 0xff
	.byte	255                             ; 0xff
	.byte	255                             ; 0xff
	.byte	7                               ; 0x7
	.byte	255                             ; 0xff
	.byte	255                             ; 0xff
	.byte	255                             ; 0xff
	.section	__TEXT,__text,regular,pure_instructions
	.p2align	2
_gf2k_get_bits:                         ; @gf2k_get_bits
	.cfi_startproc
; %bb.0:
	cmn	w2, #5
	b.lt	LBB0_3
; %bb.1:
	mov	w8, #21846
	movk	w8, #21845, lsl #16
	smull	x9, w2, w8
	lsr	x10, x9, #63
	lsr	x9, x9, #32
	add	w10, w9, w10
	smull	x8, w1, w8
	lsr	x9, x8, #63
	lsr	x8, x8, #32
	add	w8, w8, w9
	sxtw	x9, w8
	add	w8, w10, #2
	cmp	w8, #16
	b.hs	LBB0_4
; %bb.2:
	mov	x10, #0
	mov	w11, #0
	b	LBB0_7
LBB0_3:
	mov	w11, #0
	b	LBB0_9
LBB0_4:
	and	x10, x8, #0xfffffff0
	add	x11, x0, x9
Lloh0:
	adrp	x12, lCPI0_0@PAGE
Lloh1:
	ldr	q0, [x12, lCPI0_0@PAGEOFF]
Lloh2:
	adrp	x12, lCPI0_1@PAGE
Lloh3:
	ldr	q1, [x12, lCPI0_1@PAGEOFF]
Lloh4:
	adrp	x12, lCPI0_2@PAGE
Lloh5:
	ldr	q2, [x12, lCPI0_2@PAGEOFF]
Lloh6:
	adrp	x12, lCPI0_3@PAGE
Lloh7:
	ldr	q4, [x12, lCPI0_3@PAGEOFF]
	movi.2d	v3, #0000000000000000
	movi.4s	v5, #3
Lloh8:
	adrp	x12, lCPI0_4@PAGE
Lloh9:
	ldr	q6, [x12, lCPI0_4@PAGEOFF]
	movi.2d	v7, #0x0000ff000000ff
Lloh10:
	adrp	x12, lCPI0_5@PAGE
Lloh11:
	ldr	q16, [x12, lCPI0_5@PAGEOFF]
	movi.4s	v17, #16
Lloh12:
	adrp	x12, lCPI0_6@PAGE
Lloh13:
	ldr	q18, [x12, lCPI0_6@PAGEOFF]
Lloh14:
	adrp	x12, lCPI0_7@PAGE
Lloh15:
	ldr	q19, [x12, lCPI0_7@PAGEOFF]
	mov	x12, x10
	movi.2d	v20, #0000000000000000
	movi.2d	v21, #0000000000000000
	movi.2d	v22, #0000000000000000
LBB0_5:                                 ; =>This Inner Loop Header: Depth=1
	ldr	q23, [x11], #16
	tbl.16b	v24, { v23 }, v6
	tbl.16b	v25, { v23 }, v16
	tbl.16b	v26, { v23 }, v18
	tbl.16b	v23, { v23 }, v19
	mul.4s	v27, v0, v5
	mul.4s	v28, v1, v5
	mul.4s	v29, v4, v5
	mul.4s	v30, v2, v5
	ushl.4s	v23, v23, v30
	ushl.4s	v26, v26, v29
	ushl.4s	v25, v25, v28
	ushl.4s	v24, v24, v27
	and.16b	v24, v24, v7
	and.16b	v25, v25, v7
	and.16b	v26, v26, v7
	and.16b	v23, v23, v7
	orr.16b	v20, v23, v20
	orr.16b	v3, v26, v3
	orr.16b	v21, v25, v21
	orr.16b	v22, v24, v22
	add.4s	v4, v4, v17
	add.4s	v2, v2, v17
	add.4s	v1, v1, v17
	add.4s	v0, v0, v17
	subs	x12, x12, #16
	b.ne	LBB0_5
; %bb.6:
	orr.16b	v0, v3, v21
	orr.16b	v1, v20, v22
	orr.16b	v0, v0, v1
	ext.16b	v1, v0, v0, #8
	orr.8b	v0, v0, v1
	mov.s	w11, v0[1]
	fmov	w12, s0
	orr	w11, w12, w11
	cmp	x10, x8
	b.eq	LBB0_9
LBB0_7:
	add	x9, x10, x9
	add	x9, x0, x9
	sub	x8, x8, x10
	add	w10, w10, w10, lsl #1
LBB0_8:                                 ; =>This Inner Loop Header: Depth=1
	ldrb	w12, [x9], #1
	lsl	w12, w12, w10
	and	w12, w12, #0xff
	orr	w11, w12, w11
	add	w10, w10, #3
	subs	x8, x8, #1
	b.ne	LBB0_8
LBB0_9:
	mov	w8, #21846
	movk	w8, #21845, lsl #16
	smull	x8, w1, w8
	lsr	x9, x8, #63
	lsr	x8, x8, #32
	add	w8, w8, w9
	add	w8, w8, w8, lsl #1
	sub	w8, w1, w8
	asr	w8, w11, w8
	mov	w9, #-1
	lsl	w9, w9, w2
	bic	w8, w8, w9
	lsl	w8, w8, w3
	and	w0, w8, #0xff
	ret
	.loh AdrpLdr	Lloh14, Lloh15
	.loh AdrpAdrp	Lloh12, Lloh14
	.loh AdrpLdr	Lloh12, Lloh13
	.loh AdrpAdrp	Lloh10, Lloh12
	.loh AdrpLdr	Lloh10, Lloh11
	.loh AdrpAdrp	Lloh8, Lloh10
	.loh AdrpLdr	Lloh8, Lloh9
	.loh AdrpAdrp	Lloh6, Lloh8
	.loh AdrpLdr	Lloh6, Lloh7
	.loh AdrpAdrp	Lloh4, Lloh6
	.loh AdrpLdr	Lloh4, Lloh5
	.loh AdrpAdrp	Lloh2, Lloh4
	.loh AdrpLdr	Lloh2, Lloh3
	.loh AdrpAdrp	Lloh0, Lloh2
	.loh AdrpLdr	Lloh0, Lloh1
	.cfi_endproc
                                        ; -- End function
	.no_dead_strip	_gf2k_get_bits
.subsections_via_symbols
