	.section	__TEXT,__text,regular,pure_instructions
	.build_version macos, 13, 0	sdk_version 13, 3
	.globl	_initstate                      ## -- Begin function initstate
	.p2align	4, 0x90
_initstate:                             ## @initstate
	.cfi_startproc
## %bb.0:
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset %rbp, -16
	movq	%rsp, %rbp
	.cfi_def_cfa_register %rbp
	pushq	%r15
	pushq	%r14
	pushq	%r13
	pushq	%r12
	pushq	%rbx
	pushq	%rax
	.cfi_offset %rbx, -56
	.cfi_offset %r12, -48
	.cfi_offset %r13, -40
	.cfi_offset %r14, -32
	.cfi_offset %r15, -24
	movq	_BREAK_0@GOTPCREL(%rip), %rax
	cmpq	%rdx, (%rax)
	jbe	LBB0_2
## %bb.1:
	xorl	%ebx, %ebx
	jmp	LBB0_14
LBB0_2:
	movq	%rsi, %r14
	movq	_state@GOTPCREL(%rip), %r15
	movq	(%r15), %rcx
	leaq	-8(%rcx), %rbx
	movq	_rand_type@GOTPCREL(%rip), %r12
	movq	(%r12), %rax
	movq	_TYPE_0@GOTPCREL(%rip), %r13
	cmpq	(%r13), %rax
	je	LBB0_4
## %bb.3:
	movq	_MAX_TYPES@GOTPCREL(%rip), %rsi
	movslq	(%rsi), %r8
	movq	_rptr@GOTPCREL(%rip), %rsi
	movq	(%rsi), %rsi
	subq	%rcx, %rsi
	sarq	$3, %rsi
	imulq	%r8, %rsi
	addq	%rsi, %rax
LBB0_4:
	movq	%rax, (%rbx)
	movq	_BREAK_1@GOTPCREL(%rip), %rax
	cmpq	%rdx, (%rax)
	jbe	LBB0_6
## %bb.5:
	movq	_SEP_0@GOTPCREL(%rip), %rax
	movq	_DEG_0@GOTPCREL(%rip), %rcx
	movq	%r13, %rdx
	jmp	LBB0_11
LBB0_6:
	movq	_BREAK_2@GOTPCREL(%rip), %rax
	cmpq	%rdx, (%rax)
	jbe	LBB0_8
## %bb.7:
	movq	_SEP_1@GOTPCREL(%rip), %rax
	movq	_DEG_1@GOTPCREL(%rip), %rcx
	movq	_TYPE_1@GOTPCREL(%rip), %rdx
	jmp	LBB0_11
LBB0_8:
	movq	_BREAK_3@GOTPCREL(%rip), %rax
	cmpq	%rdx, (%rax)
	jbe	LBB0_10
## %bb.9:
	movq	_SEP_2@GOTPCREL(%rip), %rax
	movq	_DEG_2@GOTPCREL(%rip), %rcx
	movq	_TYPE_2@GOTPCREL(%rip), %rdx
	jmp	LBB0_11
LBB0_10:
	movq	_BREAK_4@GOTPCREL(%rip), %rax
	cmpq	%rdx, (%rax)
	movq	_TYPE_4@GOTPCREL(%rip), %rdx
	cmovaq	_TYPE_3@GOTPCREL(%rip), %rdx
	movq	_DEG_4@GOTPCREL(%rip), %rcx
	cmovaq	_DEG_3@GOTPCREL(%rip), %rcx
	movq	_SEP_4@GOTPCREL(%rip), %rax
	cmovaq	_SEP_3@GOTPCREL(%rip), %rax
LBB0_11:
	movq	(%rdx), %rdx
	movq	%rdx, (%r12)
	movq	(%rcx), %rcx
	movq	_rand_deg@GOTPCREL(%rip), %rdx
	movq	%rcx, (%rdx)
	movl	(%rax), %eax
	movq	_rand_sep@GOTPCREL(%rip), %rdx
	movl	%eax, (%rdx)
	leaq	8(%r14), %rax
	movq	%rax, (%r15)
	leaq	(%r14,%rcx,8), %rax
	addq	$8, %rax
	movq	_end_ptr@GOTPCREL(%rip), %rcx
	movq	%rax, (%rcx)
	callq	_srandom
	movq	(%r12), %rax
	cmpq	(%r13), %rax
	je	LBB0_13
## %bb.12:
	movq	_MAX_TYPES@GOTPCREL(%rip), %rcx
	movq	_rptr@GOTPCREL(%rip), %rdx
	movq	(%rdx), %rdx
	subq	(%r15), %rdx
	movslq	(%rcx), %rcx
	sarq	$3, %rdx
	imulq	%rcx, %rdx
	addq	%rdx, %rax
LBB0_13:
	movq	%rax, (%r14)
LBB0_14:
	movq	%rbx, %rax
	addq	$8, %rsp
	popq	%rbx
	popq	%r12
	popq	%r13
	popq	%r14
	popq	%r15
	popq	%rbp
	retq
	.cfi_endproc
                                        ## -- End function
	.comm	_state,8,3                      ## @state
	.comm	_BREAK_0,8,3                    ## @BREAK_0
	.comm	_rand_type,8,3                  ## @rand_type
	.comm	_TYPE_0,8,3                     ## @TYPE_0
	.comm	_MAX_TYPES,4,2                  ## @MAX_TYPES
	.comm	_rptr,8,3                       ## @rptr
	.comm	_BREAK_1,8,3                    ## @BREAK_1
	.comm	_DEG_0,8,3                      ## @DEG_0
	.comm	_rand_deg,8,3                   ## @rand_deg
	.comm	_SEP_0,4,2                      ## @SEP_0
	.comm	_rand_sep,4,2                   ## @rand_sep
	.comm	_BREAK_2,8,3                    ## @BREAK_2
	.comm	_TYPE_1,8,3                     ## @TYPE_1
	.comm	_DEG_1,8,3                      ## @DEG_1
	.comm	_SEP_1,4,2                      ## @SEP_1
	.comm	_BREAK_3,8,3                    ## @BREAK_3
	.comm	_TYPE_2,8,3                     ## @TYPE_2
	.comm	_DEG_2,8,3                      ## @DEG_2
	.comm	_SEP_2,4,2                      ## @SEP_2
	.comm	_BREAK_4,8,3                    ## @BREAK_4
	.comm	_TYPE_3,8,3                     ## @TYPE_3
	.comm	_DEG_3,8,3                      ## @DEG_3
	.comm	_SEP_3,4,2                      ## @SEP_3
	.comm	_TYPE_4,8,3                     ## @TYPE_4
	.comm	_DEG_4,8,3                      ## @DEG_4
	.comm	_SEP_4,4,2                      ## @SEP_4
	.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	_initstate                      ; -- Begin function initstate
	.p2align	2
_initstate:                             ; @initstate
	.cfi_startproc
; %bb.0:
	stp	x26, x25, [sp, #-80]!           ; 16-byte Folded Spill
	.cfi_def_cfa_offset 80
	stp	x24, x23, [sp, #16]             ; 16-byte Folded Spill
	stp	x22, x21, [sp, #32]             ; 16-byte Folded Spill
	stp	x20, x19, [sp, #48]             ; 16-byte Folded Spill
	stp	x29, x30, [sp, #64]             ; 16-byte Folded Spill
	add	x29, sp, #64
	.cfi_def_cfa w29, 16
	.cfi_offset w30, -8
	.cfi_offset w29, -16
	.cfi_offset w19, -24
	.cfi_offset w20, -32
	.cfi_offset w21, -40
	.cfi_offset w22, -48
	.cfi_offset w23, -56
	.cfi_offset w24, -64
	.cfi_offset w25, -72
	.cfi_offset w26, -80
Lloh0:
	adrp	x8, _BREAK_0@GOTPAGE
Lloh1:
	ldr	x8, [x8, _BREAK_0@GOTPAGEOFF]
Lloh2:
	ldr	x8, [x8]
	cmp	x8, x2
	b.ls	LBB0_2
; %bb.1:
	mov	x20, #0
	b	LBB0_14
LBB0_2:
	mov	x19, x1
Lloh3:
	adrp	x21, _state@GOTPAGE
Lloh4:
	ldr	x21, [x21, _state@GOTPAGEOFF]
	ldr	x9, [x21]
	sub	x20, x9, #8
Lloh5:
	adrp	x24, _rand_type@GOTPAGE
Lloh6:
	ldr	x24, [x24, _rand_type@GOTPAGEOFF]
	ldr	x8, [x24]
Lloh7:
	adrp	x10, _TYPE_0@GOTPAGE
Lloh8:
	ldr	x10, [x10, _TYPE_0@GOTPAGEOFF]
Lloh9:
	ldr	x10, [x10]
Lloh10:
	adrp	x22, _MAX_TYPES@GOTPAGE
Lloh11:
	ldr	x22, [x22, _MAX_TYPES@GOTPAGEOFF]
Lloh12:
	adrp	x23, _rptr@GOTPAGE
Lloh13:
	ldr	x23, [x23, _rptr@GOTPAGEOFF]
	cmp	x8, x10
	b.eq	LBB0_4
; %bb.3:
	ldrsw	x10, [x22]
	ldr	x11, [x23]
	sub	x9, x11, x9
	asr	x9, x9, #3
	madd	x8, x9, x10, x8
LBB0_4:
	str	x8, [x20]
Lloh14:
	adrp	x8, _BREAK_1@GOTPAGE
Lloh15:
	ldr	x8, [x8, _BREAK_1@GOTPAGEOFF]
Lloh16:
	ldr	x8, [x8]
Lloh17:
	adrp	x25, _TYPE_0@GOTPAGE
Lloh18:
	ldr	x25, [x25, _TYPE_0@GOTPAGEOFF]
	cmp	x8, x2
	b.ls	LBB0_6
; %bb.5:
Lloh19:
	adrp	x8, _SEP_0@GOTPAGE
Lloh20:
	ldr	x8, [x8, _SEP_0@GOTPAGEOFF]
Lloh21:
	adrp	x9, _DEG_0@GOTPAGE
Lloh22:
	ldr	x9, [x9, _DEG_0@GOTPAGEOFF]
	mov	x10, x25
	b	LBB0_11
LBB0_6:
Lloh23:
	adrp	x8, _BREAK_2@GOTPAGE
Lloh24:
	ldr	x8, [x8, _BREAK_2@GOTPAGEOFF]
Lloh25:
	ldr	x8, [x8]
	cmp	x8, x2
	b.ls	LBB0_8
; %bb.7:
Lloh26:
	adrp	x8, _SEP_1@GOTPAGE
Lloh27:
	ldr	x8, [x8, _SEP_1@GOTPAGEOFF]
Lloh28:
	adrp	x9, _DEG_1@GOTPAGE
Lloh29:
	ldr	x9, [x9, _DEG_1@GOTPAGEOFF]
Lloh30:
	adrp	x10, _TYPE_1@GOTPAGE
Lloh31:
	ldr	x10, [x10, _TYPE_1@GOTPAGEOFF]
	b	LBB0_11
LBB0_8:
Lloh32:
	adrp	x8, _BREAK_3@GOTPAGE
Lloh33:
	ldr	x8, [x8, _BREAK_3@GOTPAGEOFF]
Lloh34:
	ldr	x8, [x8]
	cmp	x8, x2
	b.ls	LBB0_10
; %bb.9:
Lloh35:
	adrp	x8, _SEP_2@GOTPAGE
Lloh36:
	ldr	x8, [x8, _SEP_2@GOTPAGEOFF]
Lloh37:
	adrp	x9, _DEG_2@GOTPAGE
Lloh38:
	ldr	x9, [x9, _DEG_2@GOTPAGEOFF]
Lloh39:
	adrp	x10, _TYPE_2@GOTPAGE
Lloh40:
	ldr	x10, [x10, _TYPE_2@GOTPAGEOFF]
	b	LBB0_11
LBB0_10:
Lloh41:
	adrp	x8, _BREAK_4@GOTPAGE
Lloh42:
	ldr	x8, [x8, _BREAK_4@GOTPAGEOFF]
Lloh43:
	ldr	x8, [x8]
Lloh44:
	adrp	x9, _TYPE_4@GOTPAGE
Lloh45:
	ldr	x9, [x9, _TYPE_4@GOTPAGEOFF]
Lloh46:
	adrp	x10, _TYPE_3@GOTPAGE
Lloh47:
	ldr	x10, [x10, _TYPE_3@GOTPAGEOFF]
	cmp	x8, x2
	csel	x10, x10, x9, hi
Lloh48:
	adrp	x8, _DEG_4@GOTPAGE
Lloh49:
	ldr	x8, [x8, _DEG_4@GOTPAGEOFF]
Lloh50:
	adrp	x9, _DEG_3@GOTPAGE
Lloh51:
	ldr	x9, [x9, _DEG_3@GOTPAGEOFF]
	csel	x9, x9, x8, hi
Lloh52:
	adrp	x8, _SEP_4@GOTPAGE
Lloh53:
	ldr	x8, [x8, _SEP_4@GOTPAGEOFF]
Lloh54:
	adrp	x11, _SEP_3@GOTPAGE
Lloh55:
	ldr	x11, [x11, _SEP_3@GOTPAGEOFF]
	csel	x8, x11, x8, hi
LBB0_11:
	ldr	x10, [x10]
	str	x10, [x24]
Lloh56:
	adrp	x10, _rand_deg@GOTPAGE
Lloh57:
	ldr	x10, [x10, _rand_deg@GOTPAGEOFF]
	ldr	x9, [x9]
Lloh58:
	str	x9, [x10]
	ldr	w8, [x8]
Lloh59:
	adrp	x10, _rand_sep@GOTPAGE
Lloh60:
	ldr	x10, [x10, _rand_sep@GOTPAGEOFF]
Lloh61:
	str	w8, [x10]
	add	x8, x19, #8
	str	x8, [x21]
	add	x8, x8, x9, lsl #3
Lloh62:
	adrp	x9, _end_ptr@GOTPAGE
Lloh63:
	ldr	x9, [x9, _end_ptr@GOTPAGEOFF]
Lloh64:
	str	x8, [x9]
	bl	_srandom
	ldr	x8, [x24]
	ldr	x9, [x25]
	cmp	x8, x9
	b.eq	LBB0_13
; %bb.12:
	ldrsw	x9, [x22]
	ldr	x10, [x23]
	ldr	x11, [x21]
	sub	x10, x10, x11
	asr	x10, x10, #3
	madd	x8, x10, x9, x8
LBB0_13:
	str	x8, [x19]
LBB0_14:
	mov	x0, x20
	ldp	x29, x30, [sp, #64]             ; 16-byte Folded Reload
	ldp	x20, x19, [sp, #48]             ; 16-byte Folded Reload
	ldp	x22, x21, [sp, #32]             ; 16-byte Folded Reload
	ldp	x24, x23, [sp, #16]             ; 16-byte Folded Reload
	ldp	x26, x25, [sp], #80             ; 16-byte Folded Reload
	ret
	.loh AdrpLdrGotLdr	Lloh0, Lloh1, Lloh2
	.loh AdrpLdrGot	Lloh12, Lloh13
	.loh AdrpLdrGot	Lloh10, Lloh11
	.loh AdrpLdrGotLdr	Lloh7, Lloh8, Lloh9
	.loh AdrpLdrGot	Lloh5, Lloh6
	.loh AdrpLdrGot	Lloh3, Lloh4
	.loh AdrpLdrGot	Lloh17, Lloh18
	.loh AdrpLdrGotLdr	Lloh14, Lloh15, Lloh16
	.loh AdrpLdrGot	Lloh21, Lloh22
	.loh AdrpLdrGot	Lloh19, Lloh20
	.loh AdrpLdrGotLdr	Lloh23, Lloh24, Lloh25
	.loh AdrpLdrGot	Lloh30, Lloh31
	.loh AdrpLdrGot	Lloh28, Lloh29
	.loh AdrpLdrGot	Lloh26, Lloh27
	.loh AdrpLdrGotLdr	Lloh32, Lloh33, Lloh34
	.loh AdrpLdrGot	Lloh39, Lloh40
	.loh AdrpLdrGot	Lloh37, Lloh38
	.loh AdrpLdrGot	Lloh35, Lloh36
	.loh AdrpLdrGot	Lloh54, Lloh55
	.loh AdrpLdrGot	Lloh52, Lloh53
	.loh AdrpLdrGot	Lloh50, Lloh51
	.loh AdrpLdrGot	Lloh48, Lloh49
	.loh AdrpLdrGot	Lloh46, Lloh47
	.loh AdrpLdrGot	Lloh44, Lloh45
	.loh AdrpLdrGotLdr	Lloh41, Lloh42, Lloh43
	.loh AdrpLdrGotStr	Lloh62, Lloh63, Lloh64
	.loh AdrpLdrGotStr	Lloh59, Lloh60, Lloh61
	.loh AdrpLdrGotStr	Lloh56, Lloh57, Lloh58
	.cfi_endproc
                                        ; -- End function
	.comm	_state,8,3                      ; @state
	.comm	_BREAK_0,8,3                    ; @BREAK_0
	.comm	_rand_type,8,3                  ; @rand_type
	.comm	_TYPE_0,8,3                     ; @TYPE_0
	.comm	_MAX_TYPES,4,2                  ; @MAX_TYPES
	.comm	_rptr,8,3                       ; @rptr
	.comm	_BREAK_1,8,3                    ; @BREAK_1
	.comm	_DEG_0,8,3                      ; @DEG_0
	.comm	_rand_deg,8,3                   ; @rand_deg
	.comm	_SEP_0,4,2                      ; @SEP_0
	.comm	_rand_sep,4,2                   ; @rand_sep
	.comm	_BREAK_2,8,3                    ; @BREAK_2
	.comm	_TYPE_1,8,3                     ; @TYPE_1
	.comm	_DEG_1,8,3                      ; @DEG_1
	.comm	_SEP_1,4,2                      ; @SEP_1
	.comm	_BREAK_3,8,3                    ; @BREAK_3
	.comm	_TYPE_2,8,3                     ; @TYPE_2
	.comm	_DEG_2,8,3                      ; @DEG_2
	.comm	_SEP_2,4,2                      ; @SEP_2
	.comm	_BREAK_4,8,3                    ; @BREAK_4
	.comm	_TYPE_3,8,3                     ; @TYPE_3
	.comm	_DEG_3,8,3                      ; @DEG_3
	.comm	_SEP_3,4,2                      ; @SEP_3
	.comm	_TYPE_4,8,3                     ; @TYPE_4
	.comm	_DEG_4,8,3                      ; @DEG_4
	.comm	_SEP_4,4,2                      ; @SEP_4
	.comm	_end_ptr,8,3                    ; @end_ptr
.subsections_via_symbols
