	.section	__TEXT,__text,regular,pure_instructions
	.build_version macos, 13, 0	sdk_version 13, 3
	.globl	_random                         ## -- Begin function random
	.p2align	4, 0x90
_random:                                ## @random
	.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
	pushq	%rax
	.cfi_offset %rbx, -24
	movq	_rand_type@GOTPCREL(%rip), %rax
	movq	(%rax), %rax
	movq	_TYPE_0@GOTPCREL(%rip), %rcx
	cmpq	(%rcx), %rax
	jne	LBB0_2
## %bb.1:
	movq	_state@GOTPCREL(%rip), %rbx
	movq	(%rbx), %rax
	movl	(%rax), %edi
	callq	_good_rand
	movq	(%rbx), %rcx
	movl	%eax, (%rcx)
	jmp	LBB0_3
LBB0_2:
	movq	_fptr@GOTPCREL(%rip), %r8
	movq	(%r8), %rdx
	movq	_rptr@GOTPCREL(%rip), %r9
	movq	(%r9), %rdi
	movl	(%rdx), %eax
	addl	(%rdi), %eax
	movl	%eax, (%rdx)
	sarl	%eax
	addq	$4, %rdx
	movq	_end_ptr@GOTPCREL(%rip), %rbx
	movq	(%rbx), %rbx
	movq	_state@GOTPCREL(%rip), %rcx
	movq	(%rcx), %rsi
	addq	$4, %rdi
	cmpq	%rbx, %rdi
	movq	%rsi, %rcx
	cmovbq	%rdi, %rcx
	cmpq	%rbx, %rdx
	cmovaeq	%rsi, %rdx
	cmovaeq	%rdi, %rcx
	movq	%rdx, (%r8)
	movq	%rcx, (%r9)
LBB0_3:
	cltq
	addq	$8, %rsp
	popq	%rbx
	popq	%rbp
	retq
	.cfi_endproc
                                        ## -- End function
	.comm	_rand_type,8,3                  ## @rand_type
	.comm	_TYPE_0,8,3                     ## @TYPE_0
	.comm	_state,8,3                      ## @state
	.comm	_fptr,8,3                       ## @fptr
	.comm	_rptr,8,3                       ## @rptr
	.comm	_end_ptr,8,3                    ## @end_ptr
.subsections_via_symbols

	.section	__TEXT,__text,regular,pure_instructions
	.build_version macos, 13, 0	sdk_version 13, 3
	.globl	_random                         ; -- Begin function random
	.p2align	2
_random:                                ; @random
	.cfi_startproc
; %bb.0:
	stp	x20, x19, [sp, #-32]!           ; 16-byte Folded Spill
	.cfi_def_cfa_offset 32
	stp	x29, x30, [sp, #16]             ; 16-byte Folded Spill
	add	x29, sp, #16
	.cfi_def_cfa w29, 16
	.cfi_offset w30, -8
	.cfi_offset w29, -16
	.cfi_offset w19, -24
	.cfi_offset w20, -32
Lloh0:
	adrp	x8, _rand_type@GOTPAGE
Lloh1:
	ldr	x8, [x8, _rand_type@GOTPAGEOFF]
Lloh2:
	ldr	x8, [x8]
Lloh3:
	adrp	x9, _TYPE_0@GOTPAGE
Lloh4:
	ldr	x9, [x9, _TYPE_0@GOTPAGEOFF]
Lloh5:
	ldr	x9, [x9]
	cmp	x8, x9
	b.ne	LBB0_2
; %bb.1:
Lloh6:
	adrp	x19, _state@GOTPAGE
Lloh7:
	ldr	x19, [x19, _state@GOTPAGEOFF]
	ldr	x8, [x19]
	ldr	w0, [x8]
	bl	_good_rand
                                        ; kill: def $w0 killed $w0 def $x0
	ldr	x8, [x19]
	str	w0, [x8]
	b	LBB0_3
LBB0_2:
Lloh8:
	adrp	x8, _fptr@GOTPAGE
Lloh9:
	ldr	x8, [x8, _fptr@GOTPAGEOFF]
	ldr	x9, [x8]
Lloh10:
	adrp	x10, _rptr@GOTPAGE
Lloh11:
	ldr	x10, [x10, _rptr@GOTPAGEOFF]
	ldr	x11, [x10]
	ldr	w12, [x11], #4
	ldr	w13, [x9]
	add	w12, w13, w12
	str	w12, [x9], #4
	asr	w0, w12, #1
Lloh12:
	adrp	x12, _end_ptr@GOTPAGE
Lloh13:
	ldr	x12, [x12, _end_ptr@GOTPAGEOFF]
Lloh14:
	ldr	x12, [x12]
Lloh15:
	adrp	x13, _state@GOTPAGE
Lloh16:
	ldr	x13, [x13, _state@GOTPAGEOFF]
Lloh17:
	ldr	x13, [x13]
	cmp	x11, x12
	csel	x14, x11, x13, lo
	cmp	x9, x12
	csel	x9, x9, x13, lo
	csel	x11, x14, x11, lo
	str	x9, [x8]
	str	x11, [x10]
LBB0_3:
	sxtw	x0, w0
	ldp	x29, x30, [sp, #16]             ; 16-byte Folded Reload
	ldp	x20, x19, [sp], #32             ; 16-byte Folded Reload
	ret
	.loh AdrpLdrGotLdr	Lloh3, Lloh4, Lloh5
	.loh AdrpLdrGotLdr	Lloh0, Lloh1, Lloh2
	.loh AdrpLdrGot	Lloh6, Lloh7
	.loh AdrpLdrGotLdr	Lloh15, Lloh16, Lloh17
	.loh AdrpLdrGotLdr	Lloh12, Lloh13, Lloh14
	.loh AdrpLdrGot	Lloh10, Lloh11
	.loh AdrpLdrGot	Lloh8, Lloh9
	.cfi_endproc
                                        ; -- End function
	.comm	_rand_type,8,3                  ; @rand_type
	.comm	_TYPE_0,8,3                     ; @TYPE_0
	.comm	_state,8,3                      ; @state
	.comm	_fptr,8,3                       ; @fptr
	.comm	_rptr,8,3                       ; @rptr
	.comm	_end_ptr,8,3                    ; @end_ptr
.subsections_via_symbols
