	.section	__TEXT,__text,regular,pure_instructions
	.build_version macos, 13, 0	sdk_version 13, 3
	.section	__TEXT,__literal4,4byte_literals
	.p2align	2                               ## -- Begin function DrawBoingBall
LCPI0_0:
	.long	0xc1a00000                      ## float -20
	.section	__TEXT,__literal8,8byte_literals
	.p2align	3
LCPI0_1:
	.quad	0x3ff0000000000000              ## double 1
	.section	__TEXT,__text,regular,pure_instructions
	.globl	_DrawBoingBall
	.p2align	4, 0x90
_DrawBoingBall:                         ## @DrawBoingBall
	.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	%r12
	pushq	%rbx
	subq	$16, %rsp
	.cfi_offset %rbx, -48
	.cfi_offset %r12, -40
	.cfi_offset %r14, -32
	.cfi_offset %r15, -24
	xorl	%eax, %eax
	callq	_glPushMatrix
	movq	_GL_MODELVIEW@GOTPCREL(%rip), %rax
	movl	(%rax), %edi
	callq	_glMatrixMode
	movq	_DIST_BALL@GOTPCREL(%rip), %rax
	movsd	(%rax), %xmm2                   ## xmm2 = mem[0],zero
	xorpd	%xmm0, %xmm0
	xorps	%xmm1, %xmm1
	callq	_glTranslatef
	xorpd	%xmm0, %xmm0
	movq	_dt@GOTPCREL(%rip), %rax
	movsd	(%rax), %xmm1                   ## xmm1 = mem[0],zero
	ucomisd	%xmm0, %xmm1
	jbe	LBB0_3
## %bb.1:
	movq	_MAX_DELTA_T@GOTPCREL(%rip), %r14
	movq	_deg_rot_y@GOTPCREL(%rip), %rbx
	movq	_deg_rot_y_inc@GOTPCREL(%rip), %r15
	movq	_ANIMATION_SPEED@GOTPCREL(%rip), %r12
	.p2align	4, 0x90
LBB0_2:                                 ## =>This Inner Loop Header: Depth=1
	movsd	(%r14), %xmm0                   ## xmm0 = mem[0],zero
	minsd	%xmm1, %xmm0
	movsd	%xmm0, -40(%rbp)                ## 8-byte Spill
	subsd	%xmm0, %xmm1
	movsd	%xmm1, -48(%rbp)                ## 8-byte Spill
	callq	_BounceBall
	movsd	-40(%rbp), %xmm0                ## 8-byte Reload
                                        ## xmm0 = mem[0],zero
	cvtsd2ss	%xmm0, %xmm0
	mulss	(%r12), %xmm0
	mulss	(%r15), %xmm0
	addss	(%rbx), %xmm0
	callq	_TruncateDeg
	movsd	-48(%rbp), %xmm1                ## 8-byte Reload
                                        ## xmm1 = mem[0],zero
	movss	%xmm0, (%rbx)
	xorps	%xmm0, %xmm0
	ucomisd	%xmm0, %xmm1
	ja	LBB0_2
LBB0_3:
	movq	_ball_x@GOTPCREL(%rip), %rax
	movsd	(%rax), %xmm0                   ## xmm0 = mem[0],zero
	movq	_ball_y@GOTPCREL(%rip), %rax
	movsd	(%rax), %xmm1                   ## xmm1 = mem[0],zero
	xorps	%xmm2, %xmm2
	callq	_glTranslatef
	movq	_drawBallHow@GOTPCREL(%rip), %rax
	movq	(%rax), %rax
	movq	_DRAW_BALL_SHADOW@GOTPCREL(%rip), %rcx
	cmpq	(%rcx), %rax
	jne	LBB0_5
## %bb.4:
	movq	_SHADOW_OFFSET_X@GOTPCREL(%rip), %rax
	movsd	(%rax), %xmm0                   ## xmm0 = mem[0],zero
	movq	_SHADOW_OFFSET_Y@GOTPCREL(%rip), %rax
	movsd	(%rax), %xmm1                   ## xmm1 = mem[0],zero
	movq	_SHADOW_OFFSET_Z@GOTPCREL(%rip), %rax
	movsd	(%rax), %xmm2                   ## xmm2 = mem[0],zero
	callq	_glTranslatef
LBB0_5:
	movss	LCPI0_0(%rip), %xmm0            ## xmm0 = mem[0],zero,zero,zero
	movsd	LCPI0_1(%rip), %xmm3            ## xmm3 = mem[0],zero
	xorps	%xmm1, %xmm1
	xorps	%xmm2, %xmm2
	callq	_glRotatef
	movq	_deg_rot_y@GOTPCREL(%rip), %rax
	movss	(%rax), %xmm0                   ## xmm0 = mem[0],zero,zero,zero
	xorps	%xmm1, %xmm1
	xorps	%xmm3, %xmm3
	movsd	LCPI0_1(%rip), %xmm2            ## xmm2 = mem[0],zero
	callq	_glRotatef
	movq	_GL_FRONT@GOTPCREL(%rip), %rax
	movl	(%rax), %edi
	callq	_glCullFace
	movq	_GL_CULL_FACE@GOTPCREL(%rip), %rax
	movl	(%rax), %edi
	callq	_glEnable
	movq	_GL_NORMALIZE@GOTPCREL(%rip), %rax
	movl	(%rax), %edi
	callq	_glEnable
	movq	_STEP_LONGITUDE@GOTPCREL(%rip), %r14
	movq	(%r14), %rsi
	xorl	%eax, %eax
	.p2align	4, 0x90
LBB0_6:                                 ## =>This Inner Loop Header: Depth=1
	movslq	%eax, %rbx
	addq	%rbx, %rsi
	movl	%ebx, %edi
	callq	_DrawBoingBallBand
	movq	(%r14), %rsi
	leal	(%rsi,%rbx), %eax
	cmpl	$180, %eax
	jl	LBB0_6
## %bb.7:
	xorl	%eax, %eax
	addq	$16, %rsp
	popq	%rbx
	popq	%r12
	popq	%r14
	popq	%r15
	popq	%rbp
	jmp	_glPopMatrix                    ## TAILCALL
	.cfi_endproc
                                        ## -- End function
	.comm	_GL_MODELVIEW,4,2               ## @GL_MODELVIEW
	.comm	_DIST_BALL,8,3                  ## @DIST_BALL
	.comm	_dt,8,3                         ## @dt
	.comm	_MAX_DELTA_T,8,3                ## @MAX_DELTA_T
	.comm	_deg_rot_y,4,2                  ## @deg_rot_y
	.comm	_deg_rot_y_inc,4,2              ## @deg_rot_y_inc
	.comm	_ANIMATION_SPEED,4,2            ## @ANIMATION_SPEED
	.comm	_ball_x,8,3                     ## @ball_x
	.comm	_ball_y,8,3                     ## @ball_y
	.comm	_drawBallHow,8,3                ## @drawBallHow
	.comm	_DRAW_BALL_SHADOW,8,3           ## @DRAW_BALL_SHADOW
	.comm	_SHADOW_OFFSET_X,8,3            ## @SHADOW_OFFSET_X
	.comm	_SHADOW_OFFSET_Y,8,3            ## @SHADOW_OFFSET_Y
	.comm	_SHADOW_OFFSET_Z,8,3            ## @SHADOW_OFFSET_Z
	.comm	_GL_FRONT,4,2                   ## @GL_FRONT
	.comm	_GL_CULL_FACE,4,2               ## @GL_CULL_FACE
	.comm	_GL_NORMALIZE,4,2               ## @GL_NORMALIZE
	.comm	_STEP_LONGITUDE,8,3             ## @STEP_LONGITUDE
.subsections_via_symbols

	.section	__TEXT,__text,regular,pure_instructions
	.build_version macos, 13, 0	sdk_version 13, 3
	.globl	_DrawBoingBall                  ; -- Begin function DrawBoingBall
	.p2align	2
_DrawBoingBall:                         ; @DrawBoingBall
	.cfi_startproc
; %bb.0:
	stp	d9, d8, [sp, #-64]!             ; 16-byte Folded Spill
	.cfi_def_cfa_offset 64
	stp	x22, x21, [sp, #16]             ; 16-byte Folded Spill
	stp	x20, x19, [sp, #32]             ; 16-byte Folded Spill
	stp	x29, x30, [sp, #48]             ; 16-byte Folded Spill
	add	x29, sp, #48
	.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 b8, -56
	.cfi_offset b9, -64
	bl	_glPushMatrix
Lloh0:
	adrp	x8, _GL_MODELVIEW@GOTPAGE
Lloh1:
	ldr	x8, [x8, _GL_MODELVIEW@GOTPAGEOFF]
Lloh2:
	ldr	w0, [x8]
	bl	_glMatrixMode
Lloh3:
	adrp	x8, _DIST_BALL@GOTPAGE
Lloh4:
	ldr	x8, [x8, _DIST_BALL@GOTPAGEOFF]
Lloh5:
	ldr	d2, [x8]
	movi	d0, #0000000000000000
	movi	d1, #0000000000000000
	bl	_glTranslatef
Lloh6:
	adrp	x8, _dt@GOTPAGE
Lloh7:
	ldr	x8, [x8, _dt@GOTPAGEOFF]
Lloh8:
	ldr	d9, [x8]
	fcmp	d9, #0.0
Lloh9:
	adrp	x19, _deg_rot_y@GOTPAGE
Lloh10:
	ldr	x19, [x19, _deg_rot_y@GOTPAGEOFF]
	b.le	LBB0_3
; %bb.1:
Lloh11:
	adrp	x20, _MAX_DELTA_T@GOTPAGE
Lloh12:
	ldr	x20, [x20, _MAX_DELTA_T@GOTPAGEOFF]
Lloh13:
	adrp	x21, _deg_rot_y_inc@GOTPAGE
Lloh14:
	ldr	x21, [x21, _deg_rot_y_inc@GOTPAGEOFF]
Lloh15:
	adrp	x22, _ANIMATION_SPEED@GOTPAGE
Lloh16:
	ldr	x22, [x22, _ANIMATION_SPEED@GOTPAGEOFF]
LBB0_2:                                 ; =>This Inner Loop Header: Depth=1
	ldr	d0, [x20]
	fcmp	d9, d0
	fcsel	d8, d0, d9, gt
	fsub	d9, d9, d8
	fmov	d0, d8
	bl	_BounceBall
	ldr	s0, [x19]
	ldr	s1, [x21]
	fcvt	s2, d8
	ldr	s3, [x22]
	fmul	s2, s3, s2
	fmadd	s0, s1, s2, s0
	bl	_TruncateDeg
	str	s0, [x19]
	fcmp	d9, #0.0
	b.gt	LBB0_2
LBB0_3:
Lloh17:
	adrp	x8, _ball_x@GOTPAGE
Lloh18:
	ldr	x8, [x8, _ball_x@GOTPAGEOFF]
Lloh19:
	ldr	d0, [x8]
Lloh20:
	adrp	x8, _ball_y@GOTPAGE
Lloh21:
	ldr	x8, [x8, _ball_y@GOTPAGEOFF]
Lloh22:
	ldr	d1, [x8]
	movi	d2, #0000000000000000
	bl	_glTranslatef
Lloh23:
	adrp	x8, _drawBallHow@GOTPAGE
Lloh24:
	ldr	x8, [x8, _drawBallHow@GOTPAGEOFF]
Lloh25:
	ldr	x8, [x8]
Lloh26:
	adrp	x9, _DRAW_BALL_SHADOW@GOTPAGE
Lloh27:
	ldr	x9, [x9, _DRAW_BALL_SHADOW@GOTPAGEOFF]
Lloh28:
	ldr	x9, [x9]
	cmp	x8, x9
	b.ne	LBB0_5
; %bb.4:
Lloh29:
	adrp	x8, _SHADOW_OFFSET_X@GOTPAGE
Lloh30:
	ldr	x8, [x8, _SHADOW_OFFSET_X@GOTPAGEOFF]
Lloh31:
	ldr	d0, [x8]
Lloh32:
	adrp	x8, _SHADOW_OFFSET_Y@GOTPAGE
Lloh33:
	ldr	x8, [x8, _SHADOW_OFFSET_Y@GOTPAGEOFF]
Lloh34:
	ldr	d1, [x8]
Lloh35:
	adrp	x8, _SHADOW_OFFSET_Z@GOTPAGE
Lloh36:
	ldr	x8, [x8, _SHADOW_OFFSET_Z@GOTPAGEOFF]
Lloh37:
	ldr	d2, [x8]
	bl	_glTranslatef
LBB0_5:
	fmov	s0, #-20.00000000
	movi	d1, #0000000000000000
	movi	d2, #0000000000000000
	fmov	d3, #1.00000000
	bl	_glRotatef
	ldr	s0, [x19]
	movi	d1, #0000000000000000
	fmov	d2, #1.00000000
	movi	d3, #0000000000000000
	bl	_glRotatef
Lloh38:
	adrp	x8, _GL_FRONT@GOTPAGE
Lloh39:
	ldr	x8, [x8, _GL_FRONT@GOTPAGEOFF]
Lloh40:
	ldr	w0, [x8]
	bl	_glCullFace
Lloh41:
	adrp	x8, _GL_CULL_FACE@GOTPAGE
Lloh42:
	ldr	x8, [x8, _GL_CULL_FACE@GOTPAGEOFF]
Lloh43:
	ldr	w0, [x8]
	bl	_glEnable
Lloh44:
	adrp	x8, _GL_NORMALIZE@GOTPAGE
Lloh45:
	ldr	x8, [x8, _GL_NORMALIZE@GOTPAGEOFF]
Lloh46:
	ldr	w0, [x8]
	bl	_glEnable
	mov	w19, #0
Lloh47:
	adrp	x20, _STEP_LONGITUDE@GOTPAGE
Lloh48:
	ldr	x20, [x20, _STEP_LONGITUDE@GOTPAGEOFF]
	ldr	x8, [x20]
LBB0_6:                                 ; =>This Inner Loop Header: Depth=1
	add	x1, x8, w19, sxtw
	mov	x0, x19
	bl	_DrawBoingBallBand
	ldr	x8, [x20]
	add	w19, w19, w8
	cmp	w19, #180
	b.lt	LBB0_6
; %bb.7:
	ldp	x29, x30, [sp, #48]             ; 16-byte Folded Reload
	ldp	x20, x19, [sp, #32]             ; 16-byte Folded Reload
	ldp	x22, x21, [sp, #16]             ; 16-byte Folded Reload
	ldp	d9, d8, [sp], #64               ; 16-byte Folded Reload
	b	_glPopMatrix
	.loh AdrpLdrGot	Lloh9, Lloh10
	.loh AdrpLdrGotLdr	Lloh6, Lloh7, Lloh8
	.loh AdrpLdrGotLdr	Lloh3, Lloh4, Lloh5
	.loh AdrpLdrGotLdr	Lloh0, Lloh1, Lloh2
	.loh AdrpLdrGot	Lloh15, Lloh16
	.loh AdrpLdrGot	Lloh13, Lloh14
	.loh AdrpLdrGot	Lloh11, Lloh12
	.loh AdrpLdrGotLdr	Lloh26, Lloh27, Lloh28
	.loh AdrpLdrGotLdr	Lloh23, Lloh24, Lloh25
	.loh AdrpLdrGotLdr	Lloh20, Lloh21, Lloh22
	.loh AdrpLdrGotLdr	Lloh17, Lloh18, Lloh19
	.loh AdrpLdrGotLdr	Lloh35, Lloh36, Lloh37
	.loh AdrpLdrGotLdr	Lloh32, Lloh33, Lloh34
	.loh AdrpLdrGotLdr	Lloh29, Lloh30, Lloh31
	.loh AdrpLdrGot	Lloh47, Lloh48
	.loh AdrpLdrGotLdr	Lloh44, Lloh45, Lloh46
	.loh AdrpLdrGotLdr	Lloh41, Lloh42, Lloh43
	.loh AdrpLdrGotLdr	Lloh38, Lloh39, Lloh40
	.cfi_endproc
                                        ; -- End function
	.comm	_GL_MODELVIEW,4,2               ; @GL_MODELVIEW
	.comm	_DIST_BALL,8,3                  ; @DIST_BALL
	.comm	_dt,8,3                         ; @dt
	.comm	_MAX_DELTA_T,8,3                ; @MAX_DELTA_T
	.comm	_deg_rot_y,4,2                  ; @deg_rot_y
	.comm	_deg_rot_y_inc,4,2              ; @deg_rot_y_inc
	.comm	_ANIMATION_SPEED,4,2            ; @ANIMATION_SPEED
	.comm	_ball_x,8,3                     ; @ball_x
	.comm	_ball_y,8,3                     ; @ball_y
	.comm	_drawBallHow,8,3                ; @drawBallHow
	.comm	_DRAW_BALL_SHADOW,8,3           ; @DRAW_BALL_SHADOW
	.comm	_SHADOW_OFFSET_X,8,3            ; @SHADOW_OFFSET_X
	.comm	_SHADOW_OFFSET_Y,8,3            ; @SHADOW_OFFSET_Y
	.comm	_SHADOW_OFFSET_Z,8,3            ; @SHADOW_OFFSET_Z
	.comm	_GL_FRONT,4,2                   ; @GL_FRONT
	.comm	_GL_CULL_FACE,4,2               ; @GL_CULL_FACE
	.comm	_GL_NORMALIZE,4,2               ; @GL_NORMALIZE
	.comm	_STEP_LONGITUDE,8,3             ; @STEP_LONGITUDE
.subsections_via_symbols
