	.section	__TEXT,__text,regular,pure_instructions
	.build_version macos, 13, 0	sdk_version 13, 3
	.section	__TEXT,__literal16,16byte_literals
	.p2align	4                               ## -- Begin function f255_mulgen
LCPI0_0:
	.long	8191                            ## 0x1fff
	.long	8191                            ## 0x1fff
	.long	8191                            ## 0x1fff
	.long	8191                            ## 0x1fff
	.section	__TEXT,__text,regular,pure_instructions
	.p2align	4, 0x90
_f255_mulgen:                           ## @f255_mulgen
	.cfi_startproc
## %bb.0:
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset %rbp, -16
	movq	%rsp, %rbp
	.cfi_def_cfa_register %rbp
	pushq	%r14
	pushq	%rbx
	subq	$176, %rsp
	.cfi_offset %rbx, -32
	.cfi_offset %r14, -24
	movq	%rdi, %r14
	movq	___stack_chk_guard@GOTPCREL(%rip), %rax
	movq	(%rax), %rax
	movq	%rax, -24(%rbp)
	leaq	-192(%rbp), %rdi
	testl	%ecx, %ecx
	je	LBB0_2
## %bb.1:
	callq	_square20
	jmp	LBB0_3
LBB0_2:
	callq	_mul20
LBB0_3:
	movl	-116(%rbp), %edi
	sarl	$8, %edi
	movl	$19, %esi
	callq	_MUL15
	movl	%eax, %ebx
	movzbl	-116(%rbp), %eax
	movl	%eax, -116(%rbp)
	addl	-192(%rbp), %ebx
	movl	-112(%rbp), %edi
	movl	$608, %esi                      ## imm = 0x260
	callq	_MUL15
	addl	%eax, %ebx
	movl	%ebx, %eax
	andl	$8191, %eax                     ## imm = 0x1FFF
	movl	%eax, -192(%rbp)
	sarl	$13, %ebx
	addl	-188(%rbp), %ebx
	movl	-108(%rbp), %edi
	movl	$608, %esi                      ## imm = 0x260
	callq	_MUL15
	addl	%eax, %ebx
	movl	%ebx, %eax
	andl	$8191, %eax                     ## imm = 0x1FFF
	movl	%eax, -188(%rbp)
	sarl	$13, %ebx
	addl	-184(%rbp), %ebx
	movl	-104(%rbp), %edi
	movl	$608, %esi                      ## imm = 0x260
	callq	_MUL15
	addl	%eax, %ebx
	movl	%ebx, %eax
	andl	$8191, %eax                     ## imm = 0x1FFF
	movl	%eax, -184(%rbp)
	sarl	$13, %ebx
	addl	-180(%rbp), %ebx
	movl	-100(%rbp), %edi
	movl	$608, %esi                      ## imm = 0x260
	callq	_MUL15
	addl	%eax, %ebx
	movl	%ebx, %eax
	andl	$8191, %eax                     ## imm = 0x1FFF
	movl	%eax, -180(%rbp)
	sarl	$13, %ebx
	addl	-176(%rbp), %ebx
	movl	-96(%rbp), %edi
	movl	$608, %esi                      ## imm = 0x260
	callq	_MUL15
	addl	%eax, %ebx
	movl	%ebx, %eax
	andl	$8191, %eax                     ## imm = 0x1FFF
	movl	%eax, -176(%rbp)
	sarl	$13, %ebx
	addl	-172(%rbp), %ebx
	movl	-92(%rbp), %edi
	movl	$608, %esi                      ## imm = 0x260
	callq	_MUL15
	addl	%eax, %ebx
	movl	%ebx, %eax
	andl	$8191, %eax                     ## imm = 0x1FFF
	movl	%eax, -172(%rbp)
	sarl	$13, %ebx
	addl	-168(%rbp), %ebx
	movl	-88(%rbp), %edi
	movl	$608, %esi                      ## imm = 0x260
	callq	_MUL15
	addl	%eax, %ebx
	movl	%ebx, %eax
	andl	$8191, %eax                     ## imm = 0x1FFF
	movl	%eax, -168(%rbp)
	sarl	$13, %ebx
	addl	-164(%rbp), %ebx
	movl	-84(%rbp), %edi
	movl	$608, %esi                      ## imm = 0x260
	callq	_MUL15
	addl	%eax, %ebx
	movl	%ebx, %eax
	andl	$8191, %eax                     ## imm = 0x1FFF
	movl	%eax, -164(%rbp)
	sarl	$13, %ebx
	addl	-160(%rbp), %ebx
	movl	-80(%rbp), %edi
	movl	$608, %esi                      ## imm = 0x260
	callq	_MUL15
	addl	%eax, %ebx
	movl	%ebx, %eax
	andl	$8191, %eax                     ## imm = 0x1FFF
	movl	%eax, -160(%rbp)
	sarl	$13, %ebx
	addl	-156(%rbp), %ebx
	movl	-76(%rbp), %edi
	movl	$608, %esi                      ## imm = 0x260
	callq	_MUL15
	addl	%eax, %ebx
	movl	%ebx, %eax
	andl	$8191, %eax                     ## imm = 0x1FFF
	movl	%eax, -156(%rbp)
	sarl	$13, %ebx
	addl	-152(%rbp), %ebx
	movl	-72(%rbp), %edi
	movl	$608, %esi                      ## imm = 0x260
	callq	_MUL15
	addl	%eax, %ebx
	movl	%ebx, %eax
	andl	$8191, %eax                     ## imm = 0x1FFF
	movl	%eax, -152(%rbp)
	sarl	$13, %ebx
	addl	-148(%rbp), %ebx
	movl	-68(%rbp), %edi
	movl	$608, %esi                      ## imm = 0x260
	callq	_MUL15
	addl	%eax, %ebx
	movl	%ebx, %eax
	andl	$8191, %eax                     ## imm = 0x1FFF
	movl	%eax, -148(%rbp)
	sarl	$13, %ebx
	addl	-144(%rbp), %ebx
	movl	-64(%rbp), %edi
	movl	$608, %esi                      ## imm = 0x260
	callq	_MUL15
	addl	%eax, %ebx
	movl	%ebx, %eax
	andl	$8191, %eax                     ## imm = 0x1FFF
	movl	%eax, -144(%rbp)
	sarl	$13, %ebx
	addl	-140(%rbp), %ebx
	movl	-60(%rbp), %edi
	movl	$608, %esi                      ## imm = 0x260
	callq	_MUL15
	addl	%eax, %ebx
	movl	%ebx, %eax
	andl	$8191, %eax                     ## imm = 0x1FFF
	movl	%eax, -140(%rbp)
	sarl	$13, %ebx
	addl	-136(%rbp), %ebx
	movl	-56(%rbp), %edi
	movl	$608, %esi                      ## imm = 0x260
	callq	_MUL15
	addl	%eax, %ebx
	movl	%ebx, %eax
	andl	$8191, %eax                     ## imm = 0x1FFF
	movl	%eax, -136(%rbp)
	sarl	$13, %ebx
	addl	-132(%rbp), %ebx
	movl	-52(%rbp), %edi
	movl	$608, %esi                      ## imm = 0x260
	callq	_MUL15
	addl	%eax, %ebx
	movl	%ebx, %eax
	andl	$8191, %eax                     ## imm = 0x1FFF
	movl	%eax, -132(%rbp)
	sarl	$13, %ebx
	addl	-128(%rbp), %ebx
	movl	-48(%rbp), %edi
	movl	$608, %esi                      ## imm = 0x260
	callq	_MUL15
	addl	%eax, %ebx
	movl	%ebx, %eax
	andl	$8191, %eax                     ## imm = 0x1FFF
	movl	%eax, -128(%rbp)
	sarl	$13, %ebx
	addl	-124(%rbp), %ebx
	movl	-44(%rbp), %edi
	movl	$608, %esi                      ## imm = 0x260
	callq	_MUL15
	addl	%eax, %ebx
	movl	%ebx, %eax
	andl	$8191, %eax                     ## imm = 0x1FFF
	movl	%eax, -124(%rbp)
	sarl	$13, %ebx
	addl	-120(%rbp), %ebx
	movl	-40(%rbp), %edi
	movl	$608, %esi                      ## imm = 0x260
	callq	_MUL15
	addl	%eax, %ebx
	movl	%ebx, %eax
	andl	$8191, %eax                     ## imm = 0x1FFF
	movl	%eax, -120(%rbp)
	sarl	$13, %ebx
	addl	-116(%rbp), %ebx
	movl	-36(%rbp), %edi
	movl	$608, %esi                      ## imm = 0x260
	callq	_MUL15
	addl	%eax, %ebx
	movl	%ebx, %eax
	andl	$8191, %eax                     ## imm = 0x1FFF
	movl	%eax, -116(%rbp)
	sarl	$8, %ebx
	movl	%ebx, %edi
	movl	$19, %esi
	callq	_MUL15
	addl	-192(%rbp), %eax
	movd	%eax, %xmm1
	sarl	$13, %eax
	addl	-188(%rbp), %eax
	pinsrd	$1, %eax, %xmm1
	movl	%eax, %ecx
	sarl	$13, %ecx
	addl	-184(%rbp), %ecx
	movzbl	-116(%rbp), %eax
	pinsrd	$2, %ecx, %xmm1
	sarl	$13, %ecx
	addl	-180(%rbp), %ecx
	pinsrd	$3, %ecx, %xmm1
	movdqa	LCPI0_0(%rip), %xmm0            ## xmm0 = [8191,8191,8191,8191]
	pand	%xmm0, %xmm1
	movdqu	%xmm1, (%r14)
	sarl	$13, %ecx
	addl	-176(%rbp), %ecx
	movd	%ecx, %xmm1
	sarl	$13, %ecx
	addl	-172(%rbp), %ecx
	pinsrd	$1, %ecx, %xmm1
	sarl	$13, %ecx
	addl	-168(%rbp), %ecx
	pinsrd	$2, %ecx, %xmm1
	sarl	$13, %ecx
	addl	-164(%rbp), %ecx
	pinsrd	$3, %ecx, %xmm1
	pand	%xmm0, %xmm1
	movdqu	%xmm1, 16(%r14)
	sarl	$13, %ecx
	addl	-160(%rbp), %ecx
	movd	%ecx, %xmm1
	sarl	$13, %ecx
	addl	-156(%rbp), %ecx
	pinsrd	$1, %ecx, %xmm1
	sarl	$13, %ecx
	addl	-152(%rbp), %ecx
	pinsrd	$2, %ecx, %xmm1
	sarl	$13, %ecx
	addl	-148(%rbp), %ecx
	pinsrd	$3, %ecx, %xmm1
	pand	%xmm0, %xmm1
	movdqu	%xmm1, 32(%r14)
	sarl	$13, %ecx
	addl	-144(%rbp), %ecx
	movd	%ecx, %xmm1
	sarl	$13, %ecx
	addl	-140(%rbp), %ecx
	pinsrd	$1, %ecx, %xmm1
	sarl	$13, %ecx
	addl	-136(%rbp), %ecx
	pinsrd	$2, %ecx, %xmm1
	sarl	$13, %ecx
	addl	-132(%rbp), %ecx
	pinsrd	$3, %ecx, %xmm1
	pand	%xmm0, %xmm1
	movdqu	%xmm1, 48(%r14)
	sarl	$13, %ecx
	addl	-128(%rbp), %ecx
	movd	%ecx, %xmm1
	sarl	$13, %ecx
	addl	-124(%rbp), %ecx
	pinsrd	$1, %ecx, %xmm1
	sarl	$13, %ecx
	addl	-120(%rbp), %ecx
	pinsrd	$2, %ecx, %xmm1
	shrl	$13, %ecx
	addl	%eax, %ecx
	pinsrd	$3, %ecx, %xmm1
	pand	%xmm0, %xmm1
	movdqu	%xmm1, 64(%r14)
	movq	___stack_chk_guard@GOTPCREL(%rip), %rax
	movq	(%rax), %rax
	cmpq	-24(%rbp), %rax
	jne	LBB0_5
## %bb.4:
	addq	$176, %rsp
	popq	%rbx
	popq	%r14
	popq	%rbp
	retq
LBB0_5:
	callq	___stack_chk_fail
	.cfi_endproc
                                        ## -- End function
	.no_dead_strip	_f255_mulgen
.subsections_via_symbols

	.section	__TEXT,__text,regular,pure_instructions
	.build_version macos, 13, 0	sdk_version 13, 3
	.p2align	2                               ; -- Begin function f255_mulgen
_f255_mulgen:                           ; @f255_mulgen
	.cfi_startproc
; %bb.0:
	sub	sp, sp, #208
	.cfi_def_cfa_offset 208
	stp	x20, x19, [sp, #176]            ; 16-byte Folded Spill
	stp	x29, x30, [sp, #192]            ; 16-byte Folded Spill
	add	x29, sp, #192
	.cfi_def_cfa w29, 16
	.cfi_offset w30, -8
	.cfi_offset w29, -16
	.cfi_offset w19, -24
	.cfi_offset w20, -32
	mov	x19, x0
Lloh0:
	adrp	x8, ___stack_chk_guard@GOTPAGE
Lloh1:
	ldr	x8, [x8, ___stack_chk_guard@GOTPAGEOFF]
Lloh2:
	ldr	x8, [x8]
	stur	x8, [x29, #-24]
	add	x0, sp, #8
	cbz	w3, LBB0_2
; %bb.1:
	bl	_square20
	b	LBB0_3
LBB0_2:
	bl	_mul20
LBB0_3:
	ldr	w8, [sp, #84]
	asr	w0, w8, #8
	mov	w1, #19
	bl	_MUL15
	ldrb	w8, [sp, #84]
	str	w8, [sp, #84]
	ldr	w8, [sp, #8]
	add	w20, w8, w0
	ldr	w0, [sp, #88]
	mov	w1, #608
	bl	_MUL15
	add	w8, w20, w0
	and	w9, w8, #0x1fff
	str	w9, [sp, #8]
	ldr	w9, [sp, #12]
	ldr	w0, [sp, #92]
	add	w20, w9, w8, asr #13
	mov	w1, #608
	bl	_MUL15
	add	w8, w20, w0
	and	w9, w8, #0x1fff
	str	w9, [sp, #12]
	ldr	w9, [sp, #16]
	ldr	w0, [sp, #96]
	add	w20, w9, w8, asr #13
	mov	w1, #608
	bl	_MUL15
	add	w8, w20, w0
	and	w9, w8, #0x1fff
	str	w9, [sp, #16]
	ldr	w9, [sp, #20]
	ldr	w0, [sp, #100]
	add	w20, w9, w8, asr #13
	mov	w1, #608
	bl	_MUL15
	add	w8, w20, w0
	and	w9, w8, #0x1fff
	str	w9, [sp, #20]
	ldr	w9, [sp, #24]
	ldr	w0, [sp, #104]
	add	w20, w9, w8, asr #13
	mov	w1, #608
	bl	_MUL15
	add	w8, w20, w0
	and	w9, w8, #0x1fff
	str	w9, [sp, #24]
	ldr	w9, [sp, #28]
	ldr	w0, [sp, #108]
	add	w20, w9, w8, asr #13
	mov	w1, #608
	bl	_MUL15
	add	w8, w20, w0
	and	w9, w8, #0x1fff
	str	w9, [sp, #28]
	ldr	w9, [sp, #32]
	ldr	w0, [sp, #112]
	add	w20, w9, w8, asr #13
	mov	w1, #608
	bl	_MUL15
	add	w8, w20, w0
	and	w9, w8, #0x1fff
	str	w9, [sp, #32]
	ldr	w9, [sp, #36]
	ldr	w0, [sp, #116]
	add	w20, w9, w8, asr #13
	mov	w1, #608
	bl	_MUL15
	add	w8, w20, w0
	and	w9, w8, #0x1fff
	str	w9, [sp, #36]
	ldr	w9, [sp, #40]
	ldr	w0, [sp, #120]
	add	w20, w9, w8, asr #13
	mov	w1, #608
	bl	_MUL15
	add	w8, w20, w0
	and	w9, w8, #0x1fff
	str	w9, [sp, #40]
	ldr	w9, [sp, #44]
	ldr	w0, [sp, #124]
	add	w20, w9, w8, asr #13
	mov	w1, #608
	bl	_MUL15
	add	w8, w20, w0
	and	w9, w8, #0x1fff
	str	w9, [sp, #44]
	ldr	w9, [sp, #48]
	ldr	w0, [sp, #128]
	add	w20, w9, w8, asr #13
	mov	w1, #608
	bl	_MUL15
	add	w8, w20, w0
	and	w9, w8, #0x1fff
	str	w9, [sp, #48]
	ldr	w9, [sp, #52]
	ldr	w0, [sp, #132]
	add	w20, w9, w8, asr #13
	mov	w1, #608
	bl	_MUL15
	add	w8, w20, w0
	and	w9, w8, #0x1fff
	str	w9, [sp, #52]
	ldr	w9, [sp, #56]
	ldr	w0, [sp, #136]
	add	w20, w9, w8, asr #13
	mov	w1, #608
	bl	_MUL15
	add	w8, w20, w0
	and	w9, w8, #0x1fff
	str	w9, [sp, #56]
	ldr	w9, [sp, #60]
	ldr	w0, [sp, #140]
	add	w20, w9, w8, asr #13
	mov	w1, #608
	bl	_MUL15
	add	w8, w20, w0
	and	w9, w8, #0x1fff
	str	w9, [sp, #60]
	ldr	w9, [sp, #64]
	ldr	w0, [sp, #144]
	add	w20, w9, w8, asr #13
	mov	w1, #608
	bl	_MUL15
	add	w8, w20, w0
	and	w9, w8, #0x1fff
	str	w9, [sp, #64]
	ldr	w9, [sp, #68]
	ldr	w0, [sp, #148]
	add	w20, w9, w8, asr #13
	mov	w1, #608
	bl	_MUL15
	add	w8, w20, w0
	and	w9, w8, #0x1fff
	str	w9, [sp, #68]
	ldr	w9, [sp, #72]
	ldr	w0, [sp, #152]
	add	w20, w9, w8, asr #13
	mov	w1, #608
	bl	_MUL15
	add	w8, w20, w0
	and	w9, w8, #0x1fff
	str	w9, [sp, #72]
	ldr	w9, [sp, #76]
	ldr	w0, [sp, #156]
	add	w20, w9, w8, asr #13
	mov	w1, #608
	bl	_MUL15
	add	w8, w20, w0
	and	w9, w8, #0x1fff
	str	w9, [sp, #76]
	ldr	w9, [sp, #80]
	ldr	w0, [sp, #160]
	add	w20, w9, w8, asr #13
	mov	w1, #608
	bl	_MUL15
	add	w8, w20, w0
	and	w9, w8, #0x1fff
	str	w9, [sp, #80]
	ldr	w9, [sp, #84]
	ldr	w0, [sp, #164]
	add	w20, w9, w8, asr #13
	mov	w1, #608
	bl	_MUL15
	add	w8, w20, w0
	and	w9, w8, #0x1fff
	str	w9, [sp, #84]
	asr	w0, w8, #8
	mov	w1, #19
	bl	_MUL15
	ldrb	w8, [sp, #84]
	ldp	w9, w10, [sp, #8]
	add	w9, w9, w0
	and	w11, w9, #0x1fff
	add	w9, w10, w9, asr #13
	and	w10, w9, #0x1fff
	stp	w11, w10, [x19]
	ldp	w10, w11, [sp, #16]
	add	w9, w10, w9, asr #13
	and	w10, w9, #0x1fff
	add	w9, w11, w9, asr #13
	and	w11, w9, #0x1fff
	stp	w10, w11, [x19, #8]
	ldp	w10, w11, [sp, #24]
	add	w9, w10, w9, asr #13
	and	w10, w9, #0x1fff
	add	w9, w11, w9, asr #13
	and	w11, w9, #0x1fff
	stp	w10, w11, [x19, #16]
	ldp	w10, w11, [sp, #32]
	add	w9, w10, w9, asr #13
	and	w10, w9, #0x1fff
	add	w9, w11, w9, asr #13
	and	w11, w9, #0x1fff
	stp	w10, w11, [x19, #24]
	ldp	w10, w11, [sp, #40]
	add	w9, w10, w9, asr #13
	and	w10, w9, #0x1fff
	add	w9, w11, w9, asr #13
	and	w11, w9, #0x1fff
	stp	w10, w11, [x19, #32]
	ldp	w10, w11, [sp, #48]
	add	w9, w10, w9, asr #13
	and	w10, w9, #0x1fff
	add	w9, w11, w9, asr #13
	and	w11, w9, #0x1fff
	stp	w10, w11, [x19, #40]
	ldp	w10, w11, [sp, #56]
	add	w9, w10, w9, asr #13
	and	w10, w9, #0x1fff
	add	w9, w11, w9, asr #13
	and	w11, w9, #0x1fff
	stp	w10, w11, [x19, #48]
	ldp	w10, w11, [sp, #64]
	add	w9, w10, w9, asr #13
	and	w10, w9, #0x1fff
	add	w9, w11, w9, asr #13
	and	w11, w9, #0x1fff
	stp	w10, w11, [x19, #56]
	ldp	w10, w11, [sp, #72]
	add	w9, w10, w9, asr #13
	and	w10, w9, #0x1fff
	add	w9, w11, w9, asr #13
	and	w11, w9, #0x1fff
	stp	w10, w11, [x19, #64]
	ldr	w10, [sp, #80]
	add	w9, w10, w9, asr #13
	and	w10, w9, #0x1fff
	add	w8, w8, w9, lsr #13
	and	w8, w8, #0x1fff
	stp	w10, w8, [x19, #72]
	ldur	x8, [x29, #-24]
Lloh3:
	adrp	x9, ___stack_chk_guard@GOTPAGE
Lloh4:
	ldr	x9, [x9, ___stack_chk_guard@GOTPAGEOFF]
Lloh5:
	ldr	x9, [x9]
	cmp	x9, x8
	b.ne	LBB0_5
; %bb.4:
	ldp	x29, x30, [sp, #192]            ; 16-byte Folded Reload
	ldp	x20, x19, [sp, #176]            ; 16-byte Folded Reload
	add	sp, sp, #208
	ret
LBB0_5:
	bl	___stack_chk_fail
	.loh AdrpLdrGotLdr	Lloh0, Lloh1, Lloh2
	.loh AdrpLdrGotLdr	Lloh3, Lloh4, Lloh5
	.cfi_endproc
                                        ; -- End function
	.no_dead_strip	_f255_mulgen
.subsections_via_symbols
