	.section	__TEXT,__text,regular,pure_instructions
	.build_version macos, 13, 0	sdk_version 13, 3
	.p2align	4, 0x90                         ## -- Begin function rs_rate_scale_perform
_rs_rate_scale_perform:                 ## @rs_rate_scale_perform
	.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
	subq	$136, %rsp
	.cfi_offset %rbx, -56
	.cfi_offset %r12, -48
	.cfi_offset %r13, -40
	.cfi_offset %r14, -32
	.cfi_offset %r15, -24
	movq	%rcx, %r15
	movq	%rdx, %r13
	movq	%rsi, %rbx
	movq	%rdi, %r14
	movq	16(%rdi), %rax
	movq	%rax, -128(%rbp)                ## 8-byte Spill
	movq	%rsi, %rdi
	callq	_IEEE80211_SKB_CB
	movq	%rax, %r12
	movq	(%rbx), %rbx
	movq	_IWL_INVALID_VALUE@GOTPCREL(%rip), %rax
	movl	(%rax), %eax
	movl	%eax, -84(%rbp)                 ## 4-byte Spill
	movq	%r13, -72(%rbp)                 ## 8-byte Spill
	movq	8(%r13), %rax
	movq	(%rax), %r13
	leaq	L_.str(%rip), %rsi
	movq	%r14, %rdi
	xorl	%eax, %eax
	callq	_IWL_DEBUG_RATE
	movl	(%rbx), %edi
	callq	_ieee80211_is_data
	testl	%eax, %eax
	je	LBB0_116
## %bb.1:
	movq	_IEEE80211_TX_CTL_NO_ACK@GOTPCREL(%rip), %rax
	movl	(%rax), %eax
	testl	%eax, (%r12)
	je	LBB0_2
LBB0_116:
	addq	$136, %rsp
	popq	%rbx
	popq	%r12
	popq	%r13
	popq	%r14
	popq	%r15
	popq	%rbp
	retq
LBB0_2:
	movq	-72(%rbp), %rax                 ## 8-byte Reload
	movq	(%rax), %rax
	movq	8(%r15), %rcx
	movl	(%rax,%rcx,4), %eax
	movl	%eax, (%r15)
	movq	%r15, %rdi
	movq	%rbx, %rsi
	callq	_rs_tl_add_packet
	movq	_IWL_MAX_TID_COUNT@GOTPCREL(%rip), %rcx
	cmpl	(%rcx), %eax
	movq	%r14, -56(%rbp)                 ## 8-byte Spill
	movl	%eax, -164(%rbp)                ## 4-byte Spill
	je	LBB0_6
## %bb.3:
	movl	16(%r15), %ecx
	btl	%eax, %ecx
	jae	LBB0_6
## %bb.4:
	movq	8(%r14), %rdx
	movq	64(%r15), %rcx
	movq	(%rdx,%rcx,8), %rdx
	movslq	%eax, %rcx
	movq	(%rdx,%rcx,8), %rdx
	movq	_IWL_AGG_OFF@GOTPCREL(%rip), %rcx
	cmpq	(%rcx), %rdx
	jne	LBB0_5
LBB0_6:
	movl	$0, 20(%r15)
LBB0_7:
	movq	%r13, -160(%rbp)                ## 8-byte Spill
	movl	24(%r15), %eax
	movl	$1, %r12d
	subl	%eax, %r12d
	cmpq	$0, 88(%r15)
	cmovel	%eax, %r12d
	movq	72(%r15), %rcx
	movslq	%r12d, %rax
	leaq	(%rax,%rax,4), %rax
	leaq	24(%rcx,%rax,8), %r13
	movq	%rcx, -96(%rbp)                 ## 8-byte Spill
	movq	%rax, -80(%rbp)                 ## 8-byte Spill
	movq	24(%rcx,%rax,8), %rdi
	callq	_is_legacy
	xorl	%ecx, %ecx
	testq	%rax, %rax
	jne	LBB0_9
## %bb.8:
	movq	-72(%rbp), %rdi                 ## 8-byte Reload
	callq	_rs_use_green
	movl	%eax, %ecx
LBB0_9:
	movl	%ecx, -100(%rbp)                ## 4-byte Spill
	movl	%ecx, 28(%r15)
	movl	32(%r15), %edx
	movq	(%r13), %rcx
	leaq	L_.str.1(%rip), %rsi
	movq	-56(%rbp), %r14                 ## 8-byte Reload
	movq	%r14, %rdi
	movl	%edx, -44(%rbp)                 ## 4-byte Spill
	xorl	%eax, %eax
	callq	_IWL_DEBUG_RATE
	movq	(%r13), %rdx
	movq	%r15, %rdi
	movq	%rbx, %rsi
	callq	_rs_get_supported_rates
	movq	%r13, %rbx
	movl	%eax, %r13d
	leaq	L_.str.2(%rip), %rsi
	movq	%r14, %rdi
	movl	%eax, %edx
	xorl	%eax, %eax
	callq	_IWL_DEBUG_RATE
	movq	%rbx, -120(%rbp)                ## 8-byte Spill
	movq	(%rbx), %rdi
	callq	_is_legacy
	testq	%rax, %rax
	movq	%r15, -64(%rbp)                 ## 8-byte Spill
	je	LBB0_10
## %bb.11:
	movq	8(%r15), %rcx
	movq	_NL80211_BAND_5GHZ@GOTPCREL(%rip), %rdx
	movl	(%r15), %eax
	cmpq	(%rdx), %rcx
	movq	-96(%rbp), %r8                  ## 8-byte Reload
	movq	-80(%rbp), %r9                  ## 8-byte Reload
	jne	LBB0_13
## %bb.12:
	movq	_IWL_FIRST_OFDM_RATE@GOTPCREL(%rip), %rcx
	movb	(%rcx), %cl
	shll	%cl, %eax
LBB0_13:
	andl	%r13d, %eax
	movl	-44(%rbp), %r15d                ## 4-byte Reload
	jmp	LBB0_14
LBB0_10:
	movl	%r13d, %eax
	movl	-44(%rbp), %r15d                ## 4-byte Reload
	movq	-96(%rbp), %r8                  ## 8-byte Reload
	movq	-80(%rbp), %r9                  ## 8-byte Reload
LBB0_14:
	testl	%eax, %eax
	cmovnel	%eax, %r13d
	btl	%r15d, %r13d
	jae	LBB0_15
## %bb.17:
	leaq	(%r8,%r9,8), %r14
	movq	(%r14), %rax
	testq	%rax, %rax
	je	LBB0_117
## %bb.18:
	movq	-64(%rbp), %rcx                 ## 8-byte Reload
	movslq	36(%rcx), %rbx
	movq	32(%r8,%r9,8), %r10
	cmpq	$-1, %rbx
	movq	%r14, -112(%rbp)                ## 8-byte Spill
	je	LBB0_21
## %bb.19:
	cmpl	%r15d, %ebx
	jge	LBB0_21
## %bb.20:
	leaq	(%rbx,%rbx,2), %rax
	leaq	(%r10,%rax,8), %rax
	movq	%rax, -152(%rbp)                ## 8-byte Spill
	xorl	%r15d, %r15d
	xorl	%r14d, %r14d
	movl	-84(%rbp), %eax                 ## 4-byte Reload
	movl	%eax, -96(%rbp)                 ## 4-byte Spill
LBB0_80:
	movq	-56(%rbp), %r12                 ## 8-byte Reload
	movq	%r12, %rdi
	movq	-160(%rbp), %rsi                ## 8-byte Reload
	movq	-64(%rbp), %rdx                 ## 8-byte Reload
	movq	-112(%rbp), %rcx                ## 8-byte Reload
	movl	%ebx, %r8d
	movl	-100(%rbp), %r9d                ## 4-byte Reload
	callq	_rs_update_rate_tbl
	movb	$1, %r13b
	movl	%ebx, %eax
	movl	%ebx, -44(%rbp)                 ## 4-byte Spill
LBB0_81:
	movq	%r12, %rdi
	callq	_iwl_tx_ant_restriction
	movq	_IWL_ANT_OK_MULTI@GOTPCREL(%rip), %rcx
	cmpq	(%rcx), %rax
	jne	LBB0_83
## %bb.82:
	movq	-64(%rbp), %rdi                 ## 8-byte Reload
	xorl	%esi, %esi
	callq	_rs_stay_in_table
LBB0_83:
	orb	%r14b, %r13b
	je	LBB0_84
## %bb.98:
	testl	%r15d, %r15d
	movq	-64(%rbp), %r13                 ## 8-byte Reload
	movq	-56(%rbp), %r14                 ## 8-byte Reload
	movl	-44(%rbp), %r15d                ## 4-byte Reload
	je	LBB0_115
LBB0_99:
	cmpl	$0, 80(%r13)
	jne	LBB0_115
## %bb.100:
	movq	72(%r13), %r14
	movslq	24(%r13), %rax
	leaq	(%rax,%rax,4), %r15
	movq	24(%r14,%r15,8), %rdi
	callq	_is_legacy
	testq	%rax, %rax
	je	LBB0_104
## %bb.101:
	movq	-128(%rbp), %rdi                ## 8-byte Reload
	callq	_conf_is_ht
	testl	%eax, %eax
	jne	LBB0_104
## %bb.102:
	movq	56(%r13), %rax
	cmpq	8(%r14,%r15,8), %rax
	jle	LBB0_104
## %bb.103:
	leaq	L_.str.13(%rip), %rsi
	movq	-56(%rbp), %r12                 ## 8-byte Reload
	movq	%r12, %rdi
	xorl	%eax, %eax
	callq	_IWL_DEBUG_RATE
	movq	%r12, %rdi
	movl	$1, %esi
	movq	%r13, %rdx
	callq	_rs_set_stay_in_table
LBB0_104:
	cmpl	$0, 44(%r13)
	je	LBB0_105
## %bb.106:
	movq	56(%r13), %rax
	cmpq	8(%r14,%r15,8), %rax
	jge	LBB0_107
LBB0_105:
	movq	-56(%rbp), %r14                 ## 8-byte Reload
	jmp	LBB0_114
LBB0_15:
	leaq	L_.str.3(%rip), %rsi
	movq	-56(%rbp), %r15                 ## 8-byte Reload
	movq	%r15, %rdi
	callq	_IWL_ERR
	movq	-64(%rbp), %rbx                 ## 8-byte Reload
	cmpq	$0, 88(%rbx)
	movq	-160(%rbp), %r12                ## 8-byte Reload
	je	LBB0_116
## %bb.16:
	movq	_LQ_NONE@GOTPCREL(%rip), %rax
	movq	(%rax), %rax
	movq	-120(%rbp), %rcx                ## 8-byte Reload
	movq	%rax, (%rcx)
	movq	$0, 88(%rbx)
	movq	72(%rbx), %rax
	movslq	24(%rbx), %rcx
	leaq	(%rcx,%rcx,4), %rcx
	leaq	(%rax,%rcx,8), %r14
	movl	16(%rax,%rcx,8), %edi
	callq	_iwl_hwrate_to_plcp_idx
	movq	%r15, %rdi
	movq	%r12, %rsi
	movq	%rbx, %rdx
	movq	%r14, %rcx
	movl	%eax, %r8d
	movl	-100(%rbp), %r9d                ## 4-byte Reload
	addq	$136, %rsp
	popq	%rbx
	popq	%r12
	popq	%r13
	popq	%r14
	popq	%r15
	popq	%rbp
	jmp	_rs_update_rate_tbl             ## TAILCALL
LBB0_117:
	leaq	L_.str.4(%rip), %rsi
	movq	-56(%rbp), %rdi                 ## 8-byte Reload
	addq	$136, %rsp
	popq	%rbx
	popq	%r12
	popq	%r13
	popq	%r14
	popq	%r15
	popq	%rbp
	jmp	_IWL_ERR                        ## TAILCALL
LBB0_21:
	movslq	%r15d, %r11
	leaq	(%r11,%r11,2), %rbx
	movq	(%r10,%rbx,8), %rcx
	movslq	16(%r10,%rbx,8), %rdx
	movq	%rcx, %rsi
	subq	%rdx, %rsi
	movq	_IWL_RATE_MIN_FAILURE_TH@GOTPCREL(%rip), %rdi
	cmpq	(%rdi), %rsi
	jge	LBB0_24
## %bb.22:
	movq	_IWL_RATE_MIN_SUCCESS_TH@GOTPCREL(%rip), %rsi
	cmpl	(%rsi), %edx
	jge	LBB0_24
## %bb.23:
	leaq	L_.str.5(%rip), %rsi
	movq	-56(%rbp), %r14                 ## 8-byte Reload
	movq	%r14, %rdi
                                        ## kill: def $edx killed $edx killed $rdx
	movl	%r15d, %r8d
	xorl	%eax, %eax
	movq	%r10, %r12
	callq	_IWL_DEBUG_RATE
	movq	_IWL_INVALID_VALUE@GOTPCREL(%rip), %rax
	movl	(%rax), %eax
	movl	%eax, 8(%r12,%rbx,8)
	movq	-64(%rbp), %r13                 ## 8-byte Reload
	movq	%r13, %rdi
	xorl	%esi, %esi
	callq	_rs_stay_in_table
	jmp	LBB0_115
LBB0_5:
	movl	$1, 20(%r15)
	jmp	LBB0_7
LBB0_84:
	movq	-64(%rbp), %r13                 ## 8-byte Reload
	cmpl	$0, 80(%r13)
	movq	-56(%rbp), %r14                 ## 8-byte Reload
	je	LBB0_85
LBB0_114:
	movl	-44(%rbp), %r15d                ## 4-byte Reload
LBB0_115:
	movq	%r14, %rdi
	movq	-112(%rbp), %rbx                ## 8-byte Reload
	movq	%rbx, %rsi
	movl	%r15d, %edx
	movl	-100(%rbp), %ecx                ## 4-byte Reload
	callq	_rate_n_flags_from_tbl
	movl	%eax, 16(%rbx)
	movl	%r15d, 32(%r13)
	jmp	LBB0_116
LBB0_24:
	movl	(%rax,%r11,4), %eax
	imull	12(%r10,%rbx,8), %eax
	leal	64(%rax), %ecx
	addl	$191, %eax
	testl	%ecx, %ecx
	cmovnsl	%ecx, %eax
	leaq	(%r10,%rbx,8), %rcx
	addq	$8, %rcx
	movq	%rcx, -144(%rbp)                ## 8-byte Spill
	sarl	$7, %eax
	cmpl	%eax, 8(%r10,%rbx,8)
	je	LBB0_26
## %bb.25:
	leaq	L_.str.6(%rip), %rsi
	movq	-56(%rbp), %rdi                 ## 8-byte Reload
	movq	%r10, -152(%rbp)                ## 8-byte Spill
	movq	%r11, -136(%rbp)                ## 8-byte Spill
	callq	_IWL_ERR
	movq	-152(%rbp), %r10                ## 8-byte Reload
	movq	-80(%rbp), %r9                  ## 8-byte Reload
	movq	-96(%rbp), %r8                  ## 8-byte Reload
	movq	(%r14), %rax
	movq	-136(%rbp), %rcx                ## 8-byte Reload
	movl	(%rax,%rcx,4), %eax
	movq	-144(%rbp), %rdx                ## 8-byte Reload
	imull	4(%rdx), %eax
	leal	64(%rax), %ecx
	addl	$191, %eax
	testl	%ecx, %ecx
	cmovnsl	%ecx, %eax
	sarl	$7, %eax
	movl	%eax, (%rdx)
LBB0_26:
	leaq	(%r10,%rbx,8), %rax
	movq	%rax, -152(%rbp)                ## 8-byte Spill
	movq	-64(%rbp), %rax                 ## 8-byte Reload
	cmpq	$0, 88(%rax)
	je	LBB0_34
## %bb.27:
	movq	-56(%rbp), %rdi                 ## 8-byte Reload
	callq	_iwl_tx_ant_restriction
	movq	-80(%rbp), %r9                  ## 8-byte Reload
	movq	-96(%rbp), %r8                  ## 8-byte Reload
	movq	_IWL_ANT_OK_MULTI@GOTPCREL(%rip), %rcx
	cmpq	(%rcx), %rax
	jne	LBB0_34
## %bb.28:
	movq	-144(%rbp), %rax                ## 8-byte Reload
	movl	(%rax), %ecx
	movq	-64(%rbp), %rbx                 ## 8-byte Reload
	movl	40(%rbx), %r8d
	movl	4(%rax), %edx
	cmpl	%r8d, %ecx
	jle	LBB0_32
## %bb.29:
	leaq	L_.str.7(%rip), %rsi
	xorl	%r13d, %r13d
	movq	-56(%rbp), %rdi                 ## 8-byte Reload
	xorl	%eax, %eax
	callq	_IWL_DEBUG_RATE
	movq	-120(%rbp), %rax                ## 8-byte Reload
	movq	(%rax), %rdi
	callq	_is_legacy
	testq	%rax, %rax
	jne	LBB0_31
## %bb.30:
	movl	$1, 44(%rbx)
LBB0_31:
	movl	%r12d, 24(%rbx)
	movq	-144(%rbp), %r14                ## 8-byte Reload
	jmp	LBB0_33
LBB0_34:
	leaq	(%r8,%r9,8), %rbx
	addq	$32, %rbx
	movq	-120(%rbp), %rax                ## 8-byte Reload
	movq	(%rax), %rcx
	movq	-56(%rbp), %rdi                 ## 8-byte Reload
	movl	%r15d, %esi
	movl	%r13d, %edx
	callq	_rs_get_adjacent_rate
	movzbl	%al, %r14d
	movzbl	%ah, %eax
	movq	-64(%rbp), %rcx                 ## 8-byte Reload
	movl	36(%rcx), %edx
	cmpl	%eax, %edx
	movq	_IWL_RATE_INVALID@GOTPCREL(%rip), %rcx
	movl	(%rcx), %ecx
	movl	%eax, %edi
	cmovll	%ecx, %edi
	cmpl	$-1, %edx
	cmovel	%eax, %edi
	movl	-84(%rbp), %r8d                 ## 4-byte Reload
	cmpl	%ecx, %r14d
	je	LBB0_36
## %bb.35:
	movq	(%rbx), %rax
	movl	%r14d, %edx
	leaq	(%rdx,%rdx,2), %rdx
	movl	8(%rax,%rdx,8), %r8d
LBB0_36:
	movl	%r14d, -80(%rbp)                ## 4-byte Spill
	movq	-144(%rbp), %rax                ## 8-byte Reload
	movl	4(%rax), %r15d
	cmpl	%ecx, %edi
	je	LBB0_38
## %bb.37:
	movq	(%rbx), %rdx
	movslq	%edi, %rsi
	leaq	(%rsi,%rsi,2), %rsi
	movl	8(%rdx,%rsi,8), %edx
	movl	%edx, -84(%rbp)                 ## 4-byte Spill
LBB0_38:
	movl	(%rax), %r14d
	movq	_IWL_RATE_DECREASE_TH@GOTPCREL(%rip), %rdx
	leaq	L_.str.9(%rip), %rsi
	cmpl	(%rdx), %r15d
	movq	-120(%rbp), %r12                ## 8-byte Reload
	movl	%edi, -136(%rbp)                ## 4-byte Spill
	jle	LBB0_53
## %bb.39:
	testl	%r14d, %r14d
	je	LBB0_53
## %bb.40:
	movq	_IWL_INVALID_VALUE@GOTPCREL(%rip), %rdx
	movl	(%rdx), %edx
	cmpl	%edx, %r8d
	movl	-84(%rbp), %esi                 ## 4-byte Reload
	jne	LBB0_44
## %bb.41:
	cmpl	%edx, %esi
	jne	LBB0_44
## %bb.42:
	cmpl	%ecx, %edi
	setne	%al
LBB0_43:
	movq	_IWL_RATE_INCREASE_TH@GOTPCREL(%rip), %rcx
	cmpl	(%rcx), %r15d
	setge	%cl
	andb	%al, %cl
	movzbl	%cl, %r13d
	jmp	LBB0_57
LBB0_85:
	movq	-152(%rbp), %rax                ## 8-byte Reload
	cmpq	$0, (%rax)
	movl	-44(%rbp), %r15d                ## 4-byte Reload
	je	LBB0_115
## %bb.86:
	movl	-96(%rbp), %eax                 ## 4-byte Reload
	movl	%eax, 40(%r13)
	movq	-112(%rbp), %rbx                ## 8-byte Reload
	movq	24(%rbx), %rdi
	callq	_is_legacy
	testq	%rax, %rax
	je	LBB0_88
## %bb.87:
	movq	%r14, %rdi
	movq	%r13, %rsi
	movq	-128(%rbp), %rdx                ## 8-byte Reload
	movq	-72(%rbp), %rcx                 ## 8-byte Reload
	movl	%r15d, %r8d
	callq	_rs_move_legacy_other
	jmp	LBB0_93
LBB0_44:
	xorl	%r13d, %r13d
	cmpl	%edx, %r8d
	je	LBB0_48
## %bb.45:
	cmpl	%edx, %esi
	je	LBB0_48
## %bb.46:
	cmpl	%r14d, %r8d
	jge	LBB0_48
## %bb.47:
	cmpl	%r14d, %esi
	jl	LBB0_57
LBB0_48:
	cmpl	%edx, %esi
	jne	LBB0_49
## %bb.50:
	cmpl	%edx, %r8d
	je	LBB0_57
## %bb.51:
	cmpl	%r14d, %r8d
	jle	LBB0_118
## %bb.52:
	leaq	L_.str.10(%rip), %rsi
LBB0_53:
	movq	-56(%rbp), %rdi                 ## 8-byte Reload
	xorl	%eax, %eax
	callq	_IWL_DEBUG_RATE
	movl	$-1, %r13d
	movq	_IWL_RATE_INVALID@GOTPCREL(%rip), %rax
	movl	-80(%rbp), %ecx                 ## 4-byte Reload
	cmpl	(%rax), %ecx
	je	LBB0_57
## %bb.54:
	movq	_IWL_RATE_HIGH_TH@GOTPCREL(%rip), %rax
	cmpl	(%rax), %r15d
	jg	LBB0_56
## %bb.55:
	movq	-112(%rbp), %rax                ## 8-byte Reload
	movq	(%rax), %rax
	movl	-80(%rbp), %ecx                 ## 4-byte Reload
	imull	$100, (%rax,%rcx,4), %eax
	cmpl	%eax, %r14d
	jle	LBB0_57
LBB0_56:
	xorl	%r13d, %r13d
LBB0_57:
	movq	-56(%rbp), %rdi                 ## 8-byte Reload
	callq	_iwl_ht_enabled
	testq	%rax, %rax
	jne	LBB0_59
## %bb.58:
	movq	(%r12), %rdi
	callq	_is_legacy
	xorl	%ecx, %ecx
	cmpq	$1, %rax
	sbbl	%ecx, %ecx
	orl	%ecx, %r13d
LBB0_59:
	movq	-64(%rbp), %rbx                 ## 8-byte Reload
	movq	-56(%rbp), %rdi                 ## 8-byte Reload
	callq	_iwl_tx_ant_restriction
	movq	_IWL_ANT_OK_MULTI@GOTPCREL(%rip), %rcx
	cmpq	(%rcx), %rax
	je	LBB0_63
## %bb.60:
	movq	(%r12), %rdi
	callq	_is_mimo2
	testq	%rax, %rax
	jne	LBB0_62
## %bb.61:
	movq	(%r12), %rdi
	callq	_is_mimo3
	testq	%rax, %rax
	je	LBB0_63
LBB0_62:
	movl	$-1, %r13d
LBB0_63:
	movq	-56(%rbp), %rax                 ## 8-byte Reload
	movq	(%rax), %rax
	movq	_IWL_BT_COEX_TRAFFIC_LOAD_HIGH@GOTPCREL(%rip), %r15
	cmpq	(%r15), %rax
	jl	LBB0_68
## %bb.64:
	movq	(%r12), %rdi
	callq	_is_mimo2
	testq	%rax, %rax
	jne	LBB0_67
## %bb.65:
	movq	(%r12), %rdi
	callq	_is_mimo3
	testq	%rax, %rax
	je	LBB0_66
LBB0_67:
	movq	-56(%rbp), %rax                 ## 8-byte Reload
	movq	(%rax), %rax
	cmpq	%rax, 48(%rbx)
	movl	$-1, %ecx
	cmovlel	%ecx, %r13d
LBB0_68:
	movq	%rax, 48(%rbx)
	cmpq	(%r15), %rax
	movl	%r14d, -96(%rbp)                ## 4-byte Spill
	jge	LBB0_69
LBB0_72:
	movl	%r13d, %ecx
	cmpl	$1, %r13d
	je	LBB0_76
## %bb.73:
	cmpl	$-1, %ecx
	movl	-44(%rbp), %edx                 ## 4-byte Reload
	movl	-80(%rbp), %r8d                 ## 4-byte Reload
	movl	-136(%rbp), %r9d                ## 4-byte Reload
	jne	LBB0_74
## %bb.75:
	movq	_IWL_RATE_INVALID@GOTPCREL(%rip), %rax
	cmpl	(%rax), %r8d
	setne	%al
	cmovnel	%r8d, %edx
	jmp	LBB0_77
LBB0_69:
	movq	(%r12), %rdi
	callq	_is_mimo2
	testq	%rax, %rax
	jne	LBB0_71
## %bb.70:
	movq	(%r12), %rdi
	callq	_is_mimo3
	testq	%rax, %rax
	je	LBB0_72
LBB0_71:
	movq	%rbx, %rdi
	movl	$1, %esi
	callq	_rs_stay_in_table
	xorl	%r13d, %r13d
	xorl	%r15d, %r15d
	xorl	%r14d, %r14d
	movq	-56(%rbp), %r12                 ## 8-byte Reload
	jmp	LBB0_81
LBB0_32:
	leaq	40(%rbx), %r14
	leaq	L_.str.8(%rip), %rsi
	movq	-56(%rbp), %rdi                 ## 8-byte Reload
	xorl	%eax, %eax
	callq	_IWL_DEBUG_RATE
	movq	_LQ_NONE@GOTPCREL(%rip), %rax
	movq	(%rax), %rax
	movq	-120(%rbp), %rcx                ## 8-byte Reload
	movq	%rax, (%rcx)
	movslq	24(%rbx), %rax
	movq	72(%rbx), %rcx
	leaq	(%rax,%rax,4), %rax
	leaq	(%rcx,%rax,8), %rdx
	movq	%rdx, -112(%rbp)                ## 8-byte Spill
	movl	16(%rcx,%rax,8), %edi
	callq	_iwl_hwrate_to_plcp_idx
	movl	%eax, -44(%rbp)                 ## 4-byte Spill
	movl	$1, %r13d
LBB0_33:
	movl	(%r14), %eax
	movl	%eax, -96(%rbp)                 ## 4-byte Spill
	movq	$0, 88(%rbx)
	movl	$1, %r15d
	movb	$1, %r14b
	jmp	LBB0_78
LBB0_88:
	movq	24(%rbx), %rdi
	callq	_is_siso
	testq	%rax, %rax
	je	LBB0_90
## %bb.89:
	movq	%r14, %rdi
	movq	%r13, %rsi
	movq	-128(%rbp), %rdx                ## 8-byte Reload
	movq	-72(%rbp), %rcx                 ## 8-byte Reload
	movl	%r15d, %r8d
	callq	_rs_move_siso_to_other
	jmp	LBB0_93
LBB0_76:
	movl	-136(%rbp), %r9d                ## 4-byte Reload
	movq	_IWL_RATE_INVALID@GOTPCREL(%rip), %rax
	cmpl	(%rax), %r9d
	setne	%al
	movl	-44(%rbp), %edx                 ## 4-byte Reload
	cmovnel	%r9d, %edx
	movl	-80(%rbp), %r8d                 ## 4-byte Reload
	jmp	LBB0_77
LBB0_74:
	xorl	%eax, %eax
LBB0_77:
	movzbl	%al, %r13d
	movq	-120(%rbp), %rax                ## 8-byte Reload
	movq	(%rax), %rax
	movq	%rax, (%rsp)
	leaq	L_.str.11(%rip), %rsi
	xorl	%r14d, %r14d
	movq	-56(%rbp), %rdi                 ## 8-byte Reload
	movl	%edx, -44(%rbp)                 ## 4-byte Spill
	xorl	%eax, %eax
	callq	_IWL_DEBUG_RATE
	xorl	%r15d, %r15d
LBB0_78:
	testl	%r13d, %r13d
	je	LBB0_119
## %bb.79:
	movl	-44(%rbp), %eax                 ## 4-byte Reload
	movl	%eax, %ebx
	jmp	LBB0_80
LBB0_119:
	xorl	%r13d, %r13d
	movq	-56(%rbp), %r12                 ## 8-byte Reload
	jmp	LBB0_81
LBB0_107:
	movq	-56(%rbp), %r14                 ## 8-byte Reload
	movq	%r14, %rdi
	callq	_iwl_ht_enabled
	testq	%rax, %rax
	je	LBB0_114
## %bb.108:
	movl	40(%r13), %eax
	movq	_IWL_AGG_TPT_THREHOLD@GOTPCREL(%rip), %rcx
	cmpl	(%rcx), %eax
	movl	-164(%rbp), %r15d               ## 4-byte Reload
	jle	LBB0_113
## %bb.109:
	movl	16(%r13), %eax
	btl	%r15d, %eax
	jae	LBB0_113
## %bb.110:
	movq	_IWL_MAX_TID_COUNT@GOTPCREL(%rip), %rax
	cmpl	(%rax), %r15d
	je	LBB0_113
## %bb.111:
	movslq	64(%r13), %rax
	movq	8(%r14), %rcx
	movq	(%rcx,%rax,8), %rax
	movslq	%r15d, %rcx
	movq	(%rax,%rcx,8), %rax
	movq	_IWL_AGG_OFF@GOTPCREL(%rip), %rcx
	cmpq	(%rcx), %rax
	jne	LBB0_113
## %bb.112:
	leaq	L_.str.14(%rip), %rsi
	movq	%r14, %rdi
	movl	%r15d, %edx
	xorl	%eax, %eax
	callq	_IWL_DEBUG_RATE
	movq	%r14, %rdi
	movl	%r15d, %esi
	movq	%r13, %rdx
	movq	-72(%rbp), %rcx                 ## 8-byte Reload
	callq	_rs_tl_turn_on_agg
LBB0_113:
	movq	%r14, %rdi
	xorl	%esi, %esi
	movq	%r13, %rdx
	callq	_rs_set_stay_in_table
	jmp	LBB0_114
LBB0_90:
	movq	24(%rbx), %rdi
	callq	_is_mimo2
	movq	%r14, %rdi
	movq	%r13, %rsi
	testq	%rax, %rax
	je	LBB0_92
## %bb.91:
	movq	-128(%rbp), %rdx                ## 8-byte Reload
	movq	-72(%rbp), %rcx                 ## 8-byte Reload
	movl	%r15d, %r8d
	callq	_rs_move_mimo2_to_other
	jmp	LBB0_93
LBB0_66:
	movq	-56(%rbp), %rax                 ## 8-byte Reload
	movq	(%rax), %rax
	jmp	LBB0_68
LBB0_49:
	cmpl	%r14d, %esi
	setg	%al
	jmp	LBB0_43
LBB0_92:
	movq	-128(%rbp), %rdx                ## 8-byte Reload
	movq	-72(%rbp), %rcx                 ## 8-byte Reload
	movl	%r15d, %r8d
	callq	_rs_move_mimo3_to_other
LBB0_93:
	cmpq	$0, 88(%r13)
	je	LBB0_99
## %bb.94:
	movq	72(%r13), %rax
	movq	%rax, -72(%rbp)                 ## 8-byte Spill
	movslq	24(%r13), %rax
	movl	$1, %ecx
	subq	%rax, %rcx
	leaq	(%rcx,%rcx,4), %r15
	movq	_IWL_RATE_COUNT@GOTPCREL(%rip), %r12
	cmpl	$0, (%r12)
	jle	LBB0_97
## %bb.95:
	movq	-72(%rbp), %rax                 ## 8-byte Reload
	leaq	(%rax,%r15,8), %r13
	addq	$32, %r13
	xorl	%ebx, %ebx
	xorl	%r14d, %r14d
LBB0_96:                                ## =>This Inner Loop Header: Depth=1
	movq	(%r13), %rdi
	addq	%rbx, %rdi
	callq	_rs_rate_scale_clear_window
	incq	%r14
	movslq	(%r12), %rax
	addq	$24, %rbx
	cmpq	%rax, %r14
	jl	LBB0_96
LBB0_97:
	movq	-72(%rbp), %rbx                 ## 8-byte Reload
	leaq	(%rbx,%r15,8), %rax
	movq	%rax, -112(%rbp)                ## 8-byte Spill
	movl	16(%rbx,%r15,8), %edi
	callq	_iwl_hwrate_to_plcp_idx
	movl	%eax, %r12d
	movl	16(%rbx,%r15,8), %edx
	leaq	L_.str.12(%rip), %rsi
	movq	-56(%rbp), %r14                 ## 8-byte Reload
	movq	%r14, %rdi
	movl	%eax, %ecx
	xorl	%eax, %eax
	callq	_IWL_DEBUG_RATE
	movl	16(%rbx,%r15,8), %edx
	movl	%r12d, %r15d
	movq	%r14, %rdi
	movq	-64(%rbp), %r13                 ## 8-byte Reload
	movq	%r13, %rsi
	callq	_rs_fill_link_cmd
	leaq	64(%r13), %rdx
	movq	_CMD_ASYNC@GOTPCREL(%rip), %rax
	movl	(%rax), %ecx
	movq	%r14, %rdi
	movq	-160(%rbp), %rsi                ## 8-byte Reload
	xorl	%r8d, %r8d
	callq	_iwl_send_lq_cmd
	jmp	LBB0_115
LBB0_118:
	movq	_IWL_RATE_INCREASE_TH@GOTPCREL(%rip), %rax
	xorl	%r13d, %r13d
	cmpl	(%rax), %r15d
	setge	%r13b
	jmp	LBB0_57
	.cfi_endproc
                                        ## -- End function
	.comm	_IWL_RATE_INVALID,4,2           ## @IWL_RATE_INVALID
	.comm	_IWL_INVALID_VALUE,4,2          ## @IWL_INVALID_VALUE
	.comm	_IWL_MAX_TID_COUNT,4,2          ## @IWL_MAX_TID_COUNT
	.section	__TEXT,__cstring,cstring_literals
L_.str:                                 ## @.str
	.asciz	"rate scale calculate new rate for skb\n"

	.comm	_IEEE80211_TX_CTL_NO_ACK,4,2    ## @IEEE80211_TX_CTL_NO_ACK
	.comm	_IWL_AGG_OFF,8,3                ## @IWL_AGG_OFF
L_.str.1:                               ## @.str.1
	.asciz	"Rate scale index %d for type %d\n"

L_.str.2:                               ## @.str.2
	.asciz	"mask 0x%04X\n"

	.comm	_NL80211_BAND_5GHZ,8,3          ## @NL80211_BAND_5GHZ
	.comm	_IWL_FIRST_OFDM_RATE,4,2        ## @IWL_FIRST_OFDM_RATE
L_.str.3:                               ## @.str.3
	.asciz	"Current Rate is not valid\n"

	.comm	_LQ_NONE,8,3                    ## @LQ_NONE
L_.str.4:                               ## @.str.4
	.asciz	"tbl->expected_tpt is NULL\n"

	.comm	_IWL_RATE_MIN_FAILURE_TH,8,3    ## @IWL_RATE_MIN_FAILURE_TH
	.comm	_IWL_RATE_MIN_SUCCESS_TH,4,2    ## @IWL_RATE_MIN_SUCCESS_TH
L_.str.5:                               ## @.str.5
	.asciz	"LQ: still below TH. succ=%d total=%d for index %d\n"

L_.str.6:                               ## @.str.6
	.asciz	"expected_tpt should have been calculated by now\n"

	.comm	_IWL_ANT_OK_MULTI,8,3           ## @IWL_ANT_OK_MULTI
L_.str.7:                               ## @.str.7
	.asciz	"LQ: SWITCHING TO NEW TABLE suc=%d cur-tpt=%d old-tpt=%d\n"

L_.str.8:                               ## @.str.8
	.asciz	"LQ: GOING BACK TO THE OLD TABLE suc=%d cur-tpt=%d old-tpt=%d\n"

	.comm	_IWL_RATE_DECREASE_TH,4,2       ## @IWL_RATE_DECREASE_TH
L_.str.9:                               ## @.str.9
	.asciz	"decrease rate because of low success_ratio\n"

	.comm	_IWL_RATE_INCREASE_TH,4,2       ## @IWL_RATE_INCREASE_TH
L_.str.10:                              ## @.str.10
	.asciz	"decrease rate because of low tpt\n"

	.comm	_IWL_RATE_HIGH_TH,4,2           ## @IWL_RATE_HIGH_TH
	.comm	_IWL_BT_COEX_TRAFFIC_LOAD_HIGH,8,3 ## @IWL_BT_COEX_TRAFFIC_LOAD_HIGH
L_.str.11:                              ## @.str.11
	.asciz	"choose rate scale index %d action %d low %d high %d type %d\n"

	.comm	_IWL_RATE_COUNT,4,2             ## @IWL_RATE_COUNT
L_.str.12:                              ## @.str.12
	.asciz	"Switch current  mcs: %X index: %d\n"

	.comm	_CMD_ASYNC,4,2                  ## @CMD_ASYNC
L_.str.13:                              ## @.str.13
	.asciz	"LQ: STAY in legacy table\n"

	.comm	_IWL_AGG_TPT_THREHOLD,4,2       ## @IWL_AGG_TPT_THREHOLD
L_.str.14:                              ## @.str.14
	.asciz	"try to aggregate tid %d\n"

	.no_dead_strip	_rs_rate_scale_perform
.subsections_via_symbols

	.section	__TEXT,__text,regular,pure_instructions
	.build_version macos, 13, 0	sdk_version 13, 3
	.p2align	2                               ; -- Begin function rs_rate_scale_perform
_rs_rate_scale_perform:                 ; @rs_rate_scale_perform
	.cfi_startproc
; %bb.0:
	sub	sp, sp, #224
	.cfi_def_cfa_offset 224
	stp	x28, x27, [sp, #128]            ; 16-byte Folded Spill
	stp	x26, x25, [sp, #144]            ; 16-byte Folded Spill
	stp	x24, x23, [sp, #160]            ; 16-byte Folded Spill
	stp	x22, x21, [sp, #176]            ; 16-byte Folded Spill
	stp	x20, x19, [sp, #192]            ; 16-byte Folded Spill
	stp	x29, x30, [sp, #208]            ; 16-byte Folded Spill
	add	x29, sp, #208
	.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
	.cfi_offset w27, -88
	.cfi_offset w28, -96
	mov	x19, x3
	mov	x23, x2
	mov	x22, x1
	mov	x20, x0
	ldr	x24, [x0, #16]
	mov	x0, x1
	bl	_IEEE80211_SKB_CB
	mov	x21, x0
	ldr	x28, [x22]
Lloh0:
	adrp	x27, _IWL_INVALID_VALUE@GOTPAGE
Lloh1:
	ldr	x27, [x27, _IWL_INVALID_VALUE@GOTPAGEOFF]
	ldr	w25, [x27]
	ldr	x8, [x23, #8]
	ldr	x22, [x8]
Lloh2:
	adrp	x1, l_.str@PAGE
Lloh3:
	add	x1, x1, l_.str@PAGEOFF
	mov	x0, x20
	bl	_IWL_DEBUG_RATE
	ldr	w0, [x28]
	bl	_ieee80211_is_data
	cbz	w0, LBB0_2
; %bb.1:
	ldr	w8, [x21]
Lloh4:
	adrp	x9, _IEEE80211_TX_CTL_NO_ACK@GOTPAGE
Lloh5:
	ldr	x9, [x9, _IEEE80211_TX_CTL_NO_ACK@GOTPAGEOFF]
Lloh6:
	ldr	w9, [x9]
	tst	w9, w8
	b.eq	LBB0_3
LBB0_2:
	ldp	x29, x30, [sp, #208]            ; 16-byte Folded Reload
	ldp	x20, x19, [sp, #192]            ; 16-byte Folded Reload
	ldp	x22, x21, [sp, #176]            ; 16-byte Folded Reload
	ldp	x24, x23, [sp, #160]            ; 16-byte Folded Reload
	ldp	x26, x25, [sp, #144]            ; 16-byte Folded Reload
	ldp	x28, x27, [sp, #128]            ; 16-byte Folded Reload
	add	sp, sp, #224
	ret
LBB0_3:
	ldr	x8, [x23]
	ldr	x9, [x19, #8]
	ldr	w8, [x8, x9, lsl #2]
	str	w8, [x19]
	mov	x0, x19
	mov	x1, x28
	bl	_rs_tl_add_packet
                                        ; kill: def $w0 killed $w0 def $x0
Lloh7:
	adrp	x8, _IWL_MAX_TID_COUNT@GOTPAGE
Lloh8:
	ldr	x8, [x8, _IWL_MAX_TID_COUNT@GOTPAGEOFF]
Lloh9:
	ldr	w8, [x8]
	cmp	w0, w8
	str	x22, [sp, #104]                 ; 8-byte Folded Spill
	str	x0, [sp, #88]                   ; 8-byte Folded Spill
	b.eq	LBB0_6
; %bb.4:
	ldr	w8, [x19, #16]
	lsr	w8, w8, w0
	tbz	w8, #0, LBB0_6
; %bb.5:
	ldr	x8, [x20, #8]
	ldr	x9, [x19, #64]
	ldr	x8, [x8, x9, lsl #3]
	ldr	x8, [x8, w0, sxtw #3]
Lloh10:
	adrp	x9, _IWL_AGG_OFF@GOTPAGE
Lloh11:
	ldr	x9, [x9, _IWL_AGG_OFF@GOTPAGEOFF]
Lloh12:
	ldr	x9, [x9]
	cmp	x8, x9
	b.ne	LBB0_52
LBB0_6:
	str	wzr, [x19, #20]
LBB0_7:
	str	x24, [sp, #96]                  ; 8-byte Folded Spill
	ldr	x8, [x19, #88]
	ldr	w9, [x19, #24]
	mov	w10, #1
	sub	w10, w10, w9
	cmp	x8, #0
	csel	w21, w9, w10, eq
	ldr	x24, [x19, #72]
	mov	w8, #40
	smaddl	x22, w21, w8, x24
	stur	x22, [x29, #-96]                ; 8-byte Folded Spill
	ldr	x0, [x22, #24]!
	bl	_is_legacy
	cbz	x0, LBB0_9
; %bb.8:
	mov	w26, #0
	b	LBB0_10
LBB0_9:
	mov	x0, x23
	bl	_rs_use_green
	mov	x26, x0
LBB0_10:
	str	w26, [x19, #28]
	ldrsw	x9, [x19, #32]
	ldr	x8, [x22]
	str	x8, [sp, #8]
	stur	x9, [x29, #-88]                 ; 8-byte Folded Spill
	str	x9, [sp]
Lloh13:
	adrp	x1, l_.str.1@PAGE
Lloh14:
	add	x1, x1, l_.str.1@PAGEOFF
	mov	x0, x20
	bl	_IWL_DEBUG_RATE
	ldr	x2, [x22]
	mov	x0, x19
	mov	x1, x28
	bl	_rs_get_supported_rates
	mov	x28, x0
	str	x28, [sp]
Lloh15:
	adrp	x1, l_.str.2@PAGE
Lloh16:
	add	x1, x1, l_.str.2@PAGEOFF
	mov	x0, x20
	bl	_IWL_DEBUG_RATE
	ldr	x0, [x22]
	bl	_is_legacy
	cbz	x0, LBB0_14
; %bb.11:
	ldr	x9, [x19, #8]
Lloh17:
	adrp	x8, _NL80211_BAND_5GHZ@GOTPAGE
Lloh18:
	ldr	x8, [x8, _NL80211_BAND_5GHZ@GOTPAGEOFF]
Lloh19:
	ldr	x10, [x8]
	ldr	w8, [x19]
	cmp	x9, x10
	b.ne	LBB0_13
; %bb.12:
Lloh20:
	adrp	x9, _IWL_FIRST_OFDM_RATE@GOTPAGE
Lloh21:
	ldr	x9, [x9, _IWL_FIRST_OFDM_RATE@GOTPAGEOFF]
Lloh22:
	ldr	w9, [x9]
	lsl	w8, w8, w9
LBB0_13:
	and	w8, w8, w28
	b	LBB0_15
LBB0_14:
	mov	x8, x28
LBB0_15:
	ldur	x1, [x29, #-88]                 ; 8-byte Folded Reload
	cmp	w8, #0
	csel	w28, w28, w8, eq
	lsr	w8, w28, w1
	tbz	w8, #0, LBB0_40
; %bb.16:
	ldur	x8, [x29, #-96]                 ; 8-byte Folded Reload
	ldr	x8, [x8]
	cbz	x8, LBB0_42
; %bb.17:
	str	w26, [sp, #84]                  ; 4-byte Folded Spill
	sxtw	x10, w21
	ldr	w9, [x19, #36]
	mov	w11, #40
	madd	x24, x10, x11, x24
	ldr	x26, [x24, #32]!
	cmn	w9, #1
	b.eq	LBB0_43
; %bb.18:
	cmp	w9, w1
	b.ge	LBB0_43
; %bb.19:
	mov	w21, #0
	sxtw	x8, w9
	mov	w10, #24
	madd	x8, x8, x10, x26
	str	x8, [sp, #72]                   ; 8-byte Folded Spill
	mov	x4, x9
	mov	x28, x25
	ldr	w26, [sp, #84]                  ; 4-byte Folded Reload
	ldur	x27, [x29, #-96]                ; 8-byte Folded Reload
Lloh23:
	adrp	x25, _IWL_ANT_OK_MULTI@GOTPAGE
Lloh24:
	ldr	x25, [x25, _IWL_ANT_OK_MULTI@GOTPAGEOFF]
LBB0_20:
	mov	x0, x20
	ldr	x1, [sp, #104]                  ; 8-byte Folded Reload
	mov	x2, x19
	mov	x3, x27
	stur	x4, [x29, #-88]                 ; 8-byte Folded Spill
                                        ; kill: def $w4 killed $w4 killed $x4
	mov	x5, x26
	bl	_rs_update_rate_tbl
	mov	w22, #1
LBB0_21:
	mov	x24, x21
LBB0_22:
	mov	x0, x20
	bl	_iwl_tx_ant_restriction
	ldr	x8, [x25]
	cmp	x0, x8
	b.ne	LBB0_24
; %bb.23:
	mov	x0, x19
	mov	w1, #0
	bl	_rs_stay_in_table
LBB0_24:
	orr	w8, w22, w24
	tbz	w8, #0, LBB0_53
; %bb.25:
	cbz	w21, LBB0_58
LBB0_26:
	ldr	w8, [x19, #80]
	cbnz	w8, LBB0_58
; %bb.27:
	ldr	x21, [x19, #72]
	ldrsw	x22, [x19, #24]
	mov	w8, #40
	madd	x8, x22, x8, x21
	ldr	x0, [x8, #24]
	bl	_is_legacy
	cbz	x0, LBB0_31
; %bb.28:
	ldr	x0, [sp, #96]                   ; 8-byte Folded Reload
	bl	_conf_is_ht
	cbnz	w0, LBB0_31
; %bb.29:
	ldr	x8, [x19, #56]
	mov	w9, #40
	madd	x9, x22, x9, x21
	ldr	x9, [x9, #8]
	cmp	x8, x9
	b.le	LBB0_31
; %bb.30:
Lloh25:
	adrp	x1, l_.str.13@PAGE
Lloh26:
	add	x1, x1, l_.str.13@PAGEOFF
	mov	x0, x20
	bl	_IWL_DEBUG_RATE
	mov	x0, x20
	mov	w1, #1
	mov	x2, x19
	bl	_rs_set_stay_in_table
LBB0_31:
	ldr	w8, [x19, #44]
	cbz	w8, LBB0_58
; %bb.32:
	ldr	x8, [x19, #56]
	mov	w9, #40
	madd	x9, x22, x9, x21
	ldr	x9, [x9, #8]
	cmp	x8, x9
	b.lt	LBB0_58
; %bb.33:
	mov	x0, x20
	bl	_iwl_ht_enabled
	cbz	x0, LBB0_58
; %bb.34:
	ldr	w8, [x19, #40]
Lloh27:
	adrp	x9, _IWL_AGG_TPT_THREHOLD@GOTPAGE
Lloh28:
	ldr	x9, [x9, _IWL_AGG_TPT_THREHOLD@GOTPAGEOFF]
Lloh29:
	ldr	w9, [x9]
	cmp	w8, w9
	ldr	x21, [sp, #88]                  ; 8-byte Folded Reload
	b.le	LBB0_39
; %bb.35:
	ldr	w8, [x19, #16]
	lsr	w8, w8, w21
	tbz	w8, #0, LBB0_39
; %bb.36:
Lloh30:
	adrp	x8, _IWL_MAX_TID_COUNT@GOTPAGE
Lloh31:
	ldr	x8, [x8, _IWL_MAX_TID_COUNT@GOTPAGEOFF]
Lloh32:
	ldr	w8, [x8]
	cmp	w21, w8
	b.eq	LBB0_39
; %bb.37:
	ldr	x8, [x19, #64]
	ldr	x9, [x20, #8]
	sbfiz	x8, x8, #3, #32
	ldr	x8, [x9, x8]
	ldr	x8, [x8, w21, sxtw #3]
Lloh33:
	adrp	x9, _IWL_AGG_OFF@GOTPAGE
Lloh34:
	ldr	x9, [x9, _IWL_AGG_OFF@GOTPAGEOFF]
Lloh35:
	ldr	x9, [x9]
	cmp	x8, x9
	b.ne	LBB0_39
; %bb.38:
	str	x21, [sp]
Lloh36:
	adrp	x1, l_.str.14@PAGE
Lloh37:
	add	x1, x1, l_.str.14@PAGEOFF
	mov	x0, x20
	bl	_IWL_DEBUG_RATE
	mov	x0, x20
	mov	x1, x21
	mov	x2, x19
	mov	x3, x23
	bl	_rs_tl_turn_on_agg
LBB0_39:
	mov	x0, x20
	mov	w1, #0
	mov	x2, x19
	bl	_rs_set_stay_in_table
	b	LBB0_58
LBB0_40:
Lloh38:
	adrp	x1, l_.str.3@PAGE
Lloh39:
	add	x1, x1, l_.str.3@PAGEOFF
	mov	x0, x20
	bl	_IWL_ERR
	ldr	x8, [x19, #88]
	ldr	x21, [sp, #104]                 ; 8-byte Folded Reload
	cbz	x8, LBB0_2
; %bb.41:
Lloh40:
	adrp	x8, _LQ_NONE@GOTPAGE
Lloh41:
	ldr	x8, [x8, _LQ_NONE@GOTPAGEOFF]
Lloh42:
	ldr	x8, [x8]
	str	x8, [x22]
	str	xzr, [x19, #88]
	ldr	x8, [x19, #72]
	ldrsw	x9, [x19, #24]
	mov	w10, #40
	madd	x22, x9, x10, x8
	ldr	w0, [x22, #16]
	bl	_iwl_hwrate_to_plcp_idx
	mov	x4, x0
	mov	x0, x20
	mov	x1, x21
	mov	x2, x19
	mov	x3, x22
	mov	x5, x26
	ldp	x29, x30, [sp, #208]            ; 16-byte Folded Reload
	ldp	x20, x19, [sp, #192]            ; 16-byte Folded Reload
	ldp	x22, x21, [sp, #176]            ; 16-byte Folded Reload
	ldp	x24, x23, [sp, #160]            ; 16-byte Folded Reload
	ldp	x26, x25, [sp, #144]            ; 16-byte Folded Reload
	ldp	x28, x27, [sp, #128]            ; 16-byte Folded Reload
	add	sp, sp, #224
	b	_rs_update_rate_tbl
LBB0_42:
Lloh43:
	adrp	x1, l_.str.4@PAGE
Lloh44:
	add	x1, x1, l_.str.4@PAGEOFF
	mov	x0, x20
	ldp	x29, x30, [sp, #208]            ; 16-byte Folded Reload
	ldp	x20, x19, [sp, #192]            ; 16-byte Folded Reload
	ldp	x22, x21, [sp, #176]            ; 16-byte Folded Reload
	ldp	x24, x23, [sp, #160]            ; 16-byte Folded Reload
	ldp	x26, x25, [sp, #144]            ; 16-byte Folded Reload
	ldp	x28, x27, [sp, #128]            ; 16-byte Folded Reload
	add	sp, sp, #224
	b	_IWL_ERR
LBB0_43:
	mov	w9, #24
	madd	x14, x1, x9, x26
	ldr	x9, [x14]
	ldrsw	x10, [x14, #16]
Lloh45:
	adrp	x11, _IWL_RATE_MIN_FAILURE_TH@GOTPAGE
Lloh46:
	ldr	x11, [x11, _IWL_RATE_MIN_FAILURE_TH@GOTPAGEOFF]
Lloh47:
	ldr	x11, [x11]
Lloh48:
	adrp	x12, _IWL_RATE_MIN_SUCCESS_TH@GOTPAGE
Lloh49:
	ldr	x12, [x12, _IWL_RATE_MIN_SUCCESS_TH@GOTPAGEOFF]
Lloh50:
	ldr	w12, [x12]
	sub	x13, x9, x10
	cmp	x13, x11
	ccmp	w10, w12, #0, lt
	b.lt	LBB0_57
; %bb.44:
	mov	w9, #24
	madd	x26, x1, x9, x26
	ldr	w9, [x26, #8]!
	mov	x11, x26
	ldr	w10, [x11, #4]!
	stp	x11, x14, [sp, #64]             ; 16-byte Folded Spill
	ldr	w8, [x8, x1, lsl #2]
	mul	w8, w8, w10
	add	w10, w8, #64
	add	w8, w8, #191
	cmp	w10, #0
	csel	w8, w8, w10, lt
	cmp	w9, w8, asr #7
	b.eq	LBB0_46
; %bb.45:
Lloh51:
	adrp	x1, l_.str.6@PAGE
Lloh52:
	add	x1, x1, l_.str.6@PAGEOFF
	mov	x0, x20
	bl	_IWL_ERR
	ldp	x9, x1, [x29, #-96]             ; 16-byte Folded Reload
	ldr	x8, [sp, #64]                   ; 8-byte Folded Reload
	ldr	w8, [x8]
	ldr	x9, [x9]
	ldr	w9, [x9, x1, lsl #2]
	mul	w8, w9, w8
	add	w9, w8, #64
	add	w8, w8, #191
	cmp	w9, #0
	csel	w8, w8, w9, lt
	asr	w8, w8, #7
	str	w8, [x26]
LBB0_46:
	ldr	x8, [x19, #88]
	cbz	x8, LBB0_59
; %bb.47:
	mov	x0, x20
	bl	_iwl_tx_ant_restriction
	ldur	x1, [x29, #-88]                 ; 8-byte Folded Reload
Lloh53:
	adrp	x8, _IWL_ANT_OK_MULTI@GOTPAGE
Lloh54:
	ldr	x8, [x8, _IWL_ANT_OK_MULTI@GOTPAGEOFF]
Lloh55:
	ldr	x8, [x8]
	cmp	x0, x8
	b.ne	LBB0_59
; %bb.48:
	ldr	w9, [x26]
	mov	x25, x19
	ldr	w10, [x25, #40]!
	ldr	x8, [sp, #64]                   ; 8-byte Folded Reload
	ldr	w8, [x8]
	cmp	w9, w10
	b.le	LBB0_75
; %bb.49:
	stp	x9, x10, [sp, #8]
	str	x8, [sp]
Lloh56:
	adrp	x1, l_.str.7@PAGE
Lloh57:
	add	x1, x1, l_.str.7@PAGEOFF
	mov	x0, x20
	bl	_IWL_DEBUG_RATE
	ldr	x0, [x22]
	bl	_is_legacy
	cbnz	x0, LBB0_51
; %bb.50:
	mov	w8, #1
	str	w8, [x19, #44]
LBB0_51:
	mov	w24, #0
	str	w21, [x19, #24]
	ldur	x27, [x29, #-96]                ; 8-byte Folded Reload
	b	LBB0_76
LBB0_52:
	mov	w8, #1
	str	w8, [x19, #20]
	b	LBB0_7
LBB0_53:
	ldr	w8, [x19, #80]
	cbnz	w8, LBB0_58
; %bb.54:
	ldr	x8, [sp, #72]                   ; 8-byte Folded Reload
	ldr	x8, [x8]
	cbz	x8, LBB0_58
; %bb.55:
	str	w28, [x19, #40]
	ldr	x0, [x27, #24]
	bl	_is_legacy
	cbz	x0, LBB0_77
; %bb.56:
	mov	x0, x20
	mov	x1, x19
	ldr	x2, [sp, #96]                   ; 8-byte Folded Reload
	mov	x3, x23
	ldur	x4, [x29, #-88]                 ; 8-byte Folded Reload
                                        ; kill: def $w4 killed $w4 killed $x4
	bl	_rs_move_legacy_other
	b	LBB0_118
LBB0_57:
	mov	x8, x1
	stp	x9, x8, [sp, #8]
                                        ; kill: def $w10 killed $w10 killed $x10 def $x10
	str	x10, [sp]
	mov	x21, x1
Lloh58:
	adrp	x1, l_.str.5@PAGE
Lloh59:
	add	x1, x1, l_.str.5@PAGEOFF
	mov	x0, x20
	bl	_IWL_DEBUG_RATE
	ldr	w8, [x27]
	mov	w9, #24
	madd	x9, x21, x9, x26
	str	w8, [x9, #8]
	mov	x0, x19
	mov	w1, #0
	bl	_rs_stay_in_table
	ldr	w26, [sp, #84]                  ; 4-byte Folded Reload
	ldur	x27, [x29, #-96]                ; 8-byte Folded Reload
LBB0_58:
	mov	x0, x20
	mov	x1, x27
	ldur	x20, [x29, #-88]                ; 8-byte Folded Reload
	mov	x2, x20
	mov	x3, x26
	bl	_rate_n_flags_from_tbl
	str	w0, [x27, #16]
	str	w20, [x19, #32]
	b	LBB0_2
LBB0_59:
	ldr	x3, [x22]
	mov	x0, x20
                                        ; kill: def $w1 killed $w1 killed $x1
	mov	x2, x28
	bl	_rs_get_adjacent_rate
	and	w11, w0, #0xff
	ubfx	w8, w0, #8, #8
	ldr	w9, [x19, #36]
	cmp	w9, w8
	mov	w10, #-1
	ccmp	w9, w10, #4, lt
Lloh60:
	adrp	x9, _IWL_RATE_INVALID@GOTPAGE
Lloh61:
	ldr	x9, [x9, _IWL_RATE_INVALID@GOTPAGEOFF]
Lloh62:
	ldr	w9, [x9]
	csel	w12, w9, w8, ne
	mov	x8, x25
	str	x11, [sp, #56]                  ; 8-byte Folded Spill
	cmp	w11, w9
	b.eq	LBB0_61
; %bb.60:
	ldr	x8, [x24]
	mov	w10, #24
	ldr	x11, [sp, #56]                  ; 8-byte Folded Reload
	umaddl	x8, w11, w10, x8
	ldr	w8, [x8, #8]
LBB0_61:
	ldr	w28, [x26]
	ldr	x10, [sp, #64]                  ; 8-byte Folded Reload
	ldr	w21, [x10]
	cmp	w12, w9
	b.eq	LBB0_63
; %bb.62:
	ldr	x10, [x24]
	mov	w11, #24
	smaddl	x10, w12, w11, x10
	ldr	w25, [x10, #8]
LBB0_63:
Lloh63:
	adrp	x10, _IWL_RATE_DECREASE_TH@GOTPAGE
Lloh64:
	ldr	x10, [x10, _IWL_RATE_DECREASE_TH@GOTPAGEOFF]
Lloh65:
	ldr	w10, [x10]
Lloh66:
	adrp	x1, l_.str.9@PAGE
Lloh67:
	add	x1, x1, l_.str.9@PAGEOFF
	cmp	w21, w10
	ldr	w26, [sp, #84]                  ; 4-byte Folded Reload
	str	x12, [sp, #48]                  ; 8-byte Folded Spill
	b.le	LBB0_84
; %bb.64:
	cbz	w28, LBB0_84
; %bb.65:
	ldr	w10, [x27]
	cmp	w8, w10
	b.ne	LBB0_68
; %bb.66:
	cmp	w25, w10
	b.ne	LBB0_68
; %bb.67:
	cmp	w12, w9
Lloh68:
	adrp	x8, _IWL_RATE_INCREASE_TH@GOTPAGE
Lloh69:
	ldr	x8, [x8, _IWL_RATE_INCREASE_TH@GOTPAGEOFF]
Lloh70:
	ldr	w8, [x8]
	ccmp	w21, w8, #8, ne
	cset	w21, ge
	b	LBB0_86
LBB0_68:
	cmp	w8, w10
	ldur	x27, [x29, #-96]                ; 8-byte Folded Reload
	b.eq	LBB0_72
; %bb.69:
	cmp	w25, w10
	b.eq	LBB0_72
; %bb.70:
	cmp	w8, w28
	b.ge	LBB0_72
; %bb.71:
	cmp	w25, w28
	b.lt	LBB0_74
LBB0_72:
	cmp	w25, w10
	b.ne	LBB0_81
; %bb.73:
	cmp	w8, w10
	b.ne	LBB0_82
LBB0_74:
	mov	w21, #0
	b	LBB0_87
LBB0_75:
                                        ; kill: def $w10 killed $w10 killed $x10 def $x10
                                        ; kill: def $w9 killed $w9 killed $x9 def $x9
                                        ; kill: def $w8 killed $w8 killed $x8 def $x8
	stp	x9, x10, [sp, #8]
	str	x8, [sp]
Lloh71:
	adrp	x1, l_.str.8@PAGE
Lloh72:
	add	x1, x1, l_.str.8@PAGEOFF
	mov	x0, x20
	bl	_IWL_DEBUG_RATE
Lloh73:
	adrp	x8, _LQ_NONE@GOTPAGE
Lloh74:
	ldr	x8, [x8, _LQ_NONE@GOTPAGEOFF]
Lloh75:
	ldr	x8, [x8]
	str	x8, [x22]
	ldrsw	x8, [x19, #24]
	ldr	x9, [x19, #72]
	mov	w10, #40
	madd	x27, x8, x10, x9
	ldr	w0, [x27, #16]
	bl	_iwl_hwrate_to_plcp_idx
	stur	x0, [x29, #-88]                 ; 8-byte Folded Spill
	mov	w24, #1
	mov	x26, x25
LBB0_76:
Lloh76:
	adrp	x25, _IWL_ANT_OK_MULTI@GOTPAGE
Lloh77:
	ldr	x25, [x25, _IWL_ANT_OK_MULTI@GOTPAGEOFF]
	ldr	w28, [x26]
	str	xzr, [x19, #88]
	mov	w21, #1
	ldr	w26, [sp, #84]                  ; 4-byte Folded Reload
	b	LBB0_113
LBB0_77:
	ldr	x0, [x27, #24]
	bl	_is_siso
	cbz	x0, LBB0_79
; %bb.78:
	mov	x0, x20
	mov	x1, x19
	ldr	x2, [sp, #96]                   ; 8-byte Folded Reload
	mov	x3, x23
	ldur	x4, [x29, #-88]                 ; 8-byte Folded Reload
                                        ; kill: def $w4 killed $w4 killed $x4
	bl	_rs_move_siso_to_other
	b	LBB0_118
LBB0_79:
	ldr	x0, [x27, #24]
	bl	_is_mimo2
	cbz	x0, LBB0_117
; %bb.80:
	mov	x0, x20
	mov	x1, x19
	ldr	x2, [sp, #96]                   ; 8-byte Folded Reload
	mov	x3, x23
	ldur	x4, [x29, #-88]                 ; 8-byte Folded Reload
                                        ; kill: def $w4 killed $w4 killed $x4
	bl	_rs_move_mimo2_to_other
	b	LBB0_118
LBB0_81:
	cmp	w25, w28
Lloh78:
	adrp	x8, _IWL_RATE_INCREASE_TH@GOTPAGE
Lloh79:
	ldr	x8, [x8, _IWL_RATE_INCREASE_TH@GOTPAGEOFF]
Lloh80:
	ldr	w8, [x8]
	ccmp	w21, w8, #8, gt
	cset	w21, ge
	b	LBB0_87
LBB0_82:
	cmp	w8, w28
Lloh81:
	adrp	x25, _IWL_ANT_OK_MULTI@GOTPAGE
Lloh82:
	ldr	x25, [x25, _IWL_ANT_OK_MULTI@GOTPAGEOFF]
	b.le	LBB0_123
; %bb.83:
Lloh83:
	adrp	x1, l_.str.10@PAGE
Lloh84:
	add	x1, x1, l_.str.10@PAGEOFF
LBB0_84:
	mov	x0, x20
	bl	_IWL_DEBUG_RATE
Lloh85:
	adrp	x8, _IWL_RATE_INVALID@GOTPAGE
Lloh86:
	ldr	x8, [x8, _IWL_RATE_INVALID@GOTPAGEOFF]
Lloh87:
	ldr	w8, [x8]
	ldr	x9, [sp, #56]                   ; 8-byte Folded Reload
	cmp	w9, w8
	b.ne	LBB0_88
; %bb.85:
	mov	w21, #-1
LBB0_86:
	ldur	x27, [x29, #-96]                ; 8-byte Folded Reload
LBB0_87:
Lloh88:
	adrp	x25, _IWL_ANT_OK_MULTI@GOTPAGE
Lloh89:
	ldr	x25, [x25, _IWL_ANT_OK_MULTI@GOTPAGEOFF]
	b	LBB0_92
LBB0_88:
Lloh90:
	adrp	x8, _IWL_RATE_HIGH_TH@GOTPAGE
Lloh91:
	ldr	x8, [x8, _IWL_RATE_HIGH_TH@GOTPAGEOFF]
Lloh92:
	ldr	w8, [x8]
	cmp	w21, w8
	ldur	x27, [x29, #-96]                ; 8-byte Folded Reload
Lloh93:
	adrp	x25, _IWL_ANT_OK_MULTI@GOTPAGE
Lloh94:
	ldr	x25, [x25, _IWL_ANT_OK_MULTI@GOTPAGEOFF]
	b.gt	LBB0_90
; %bb.89:
	ldr	x8, [x27]
	ldr	x9, [sp, #56]                   ; 8-byte Folded Reload
	ldr	w8, [x8, w9, uxtw #2]
	mov	w9, #100
	mul	w8, w8, w9
	cmp	w28, w8
	b.le	LBB0_91
LBB0_90:
	mov	w21, #0
	b	LBB0_92
LBB0_91:
	mov	w21, #-1
LBB0_92:
	mov	x0, x20
	bl	_iwl_ht_enabled
	cbnz	x0, LBB0_94
; %bb.93:
	ldr	x0, [x22]
	bl	_is_legacy
	cmp	x0, #0
	csinv	w21, w21, wzr, ne
LBB0_94:
	mov	x0, x20
	bl	_iwl_tx_ant_restriction
	ldr	x8, [x25]
	cmp	x0, x8
	b.eq	LBB0_98
; %bb.95:
	ldr	x0, [x22]
	bl	_is_mimo2
	cbnz	x0, LBB0_97
; %bb.96:
	ldr	x0, [x22]
	bl	_is_mimo3
	cbz	x0, LBB0_98
LBB0_97:
	mov	w21, #-1
LBB0_98:
	ldr	x8, [x20]
Lloh95:
	adrp	x24, _IWL_BT_COEX_TRAFFIC_LOAD_HIGH@GOTPAGE
Lloh96:
	ldr	x24, [x24, _IWL_BT_COEX_TRAFFIC_LOAD_HIGH@GOTPAGEOFF]
	ldr	x9, [x24]
	cmp	x8, x9
	b.lt	LBB0_102
; %bb.99:
	ldr	x0, [x22]
	bl	_is_mimo2
	cbnz	x0, LBB0_101
; %bb.100:
	ldr	x0, [x22]
	bl	_is_mimo3
	cbz	x0, LBB0_116
LBB0_101:
	ldr	x9, [x19, #48]
	ldr	x8, [x20]
	cmp	x9, x8
	csinv	w21, w21, wzr, gt
LBB0_102:
	str	x8, [x19, #48]
	ldr	x9, [x24]
	cmp	x8, x9
	b.ge	LBB0_106
LBB0_103:
	cmp	w21, #1
	b.eq	LBB0_109
; %bb.104:
	cmn	w21, #1
	ldur	x9, [x29, #-88]                 ; 8-byte Folded Reload
	ldr	x11, [sp, #48]                  ; 8-byte Folded Reload
	b.ne	LBB0_111
; %bb.105:
Lloh97:
	adrp	x8, _IWL_RATE_INVALID@GOTPAGE
Lloh98:
	ldr	x8, [x8, _IWL_RATE_INVALID@GOTPAGEOFF]
Lloh99:
	ldr	w8, [x8]
	ldr	x10, [sp, #56]                  ; 8-byte Folded Reload
	cmp	w10, w8
	csel	w9, w9, w10, eq
	b	LBB0_110
LBB0_106:
	ldr	x0, [x22]
	bl	_is_mimo2
	cbnz	x0, LBB0_108
; %bb.107:
	ldr	x0, [x22]
	bl	_is_mimo3
	cbz	x0, LBB0_103
LBB0_108:
	mov	x0, x19
	mov	w1, #1
	bl	_rs_stay_in_table
	mov	w22, #0
	mov	w21, #0
	mov	w24, #0
	b	LBB0_22
LBB0_109:
Lloh100:
	adrp	x8, _IWL_RATE_INVALID@GOTPAGE
Lloh101:
	ldr	x8, [x8, _IWL_RATE_INVALID@GOTPAGEOFF]
Lloh102:
	ldr	w8, [x8]
	ldr	x11, [sp, #48]                  ; 8-byte Folded Reload
	cmp	w11, w8
	ldur	x9, [x29, #-88]                 ; 8-byte Folded Reload
	csel	w9, w9, w11, eq
LBB0_110:
	cset	w24, ne
	b	LBB0_112
LBB0_111:
	mov	w24, #0
LBB0_112:
	ldr	x8, [x22]
	stp	x11, x8, [sp, #24]
	ldr	x8, [sp, #56]                   ; 8-byte Folded Reload
	str	x8, [sp, #16]
	stur	x9, [x29, #-88]                 ; 8-byte Folded Spill
	mov	x8, x9
	stp	x8, x21, [sp]
Lloh103:
	adrp	x1, l_.str.11@PAGE
Lloh104:
	add	x1, x1, l_.str.11@PAGEOFF
	mov	x0, x20
	bl	_IWL_DEBUG_RATE
	mov	w21, #0
LBB0_113:
	cbz	w24, LBB0_115
; %bb.114:
	ldur	x4, [x29, #-88]                 ; 8-byte Folded Reload
	b	LBB0_20
LBB0_115:
	mov	w22, #0
	b	LBB0_21
LBB0_116:
	ldr	x8, [x20]
	b	LBB0_102
LBB0_117:
	mov	x0, x20
	mov	x1, x19
	ldr	x2, [sp, #96]                   ; 8-byte Folded Reload
	mov	x3, x23
	ldur	x4, [x29, #-88]                 ; 8-byte Folded Reload
                                        ; kill: def $w4 killed $w4 killed $x4
	bl	_rs_move_mimo3_to_other
LBB0_118:
	ldr	x8, [x19, #88]
	cbz	x8, LBB0_26
; %bb.119:
	ldr	x21, [x19, #72]
	ldrsw	x8, [x19, #24]
	mov	w9, #1
	sub	x22, x9, x8
	mov	w8, #40
	madd	x27, x22, x8, x21
Lloh105:
	adrp	x23, _IWL_RATE_COUNT@GOTPAGE
Lloh106:
	ldr	x23, [x23, _IWL_RATE_COUNT@GOTPAGEOFF]
	ldr	w8, [x23]
	cmp	w8, #1
	b.lt	LBB0_122
; %bb.120:
	mov	x24, #0
	mov	x25, #0
	mov	w8, #40
	madd	x8, x22, x8, x21
	add	x26, x8, #32
LBB0_121:                               ; =>This Inner Loop Header: Depth=1
	ldr	x8, [x26]
	add	x0, x8, x24
	bl	_rs_rate_scale_clear_window
	add	x25, x25, #1
	ldrsw	x8, [x23]
	add	x24, x24, #24
	cmp	x25, x8
	b.lt	LBB0_121
LBB0_122:
	mov	w8, #40
	madd	x21, x22, x8, x21
	ldr	w0, [x21, #16]
	bl	_iwl_hwrate_to_plcp_idx
	mov	x26, x0
	ldr	w8, [x21, #16]
	stp	x8, x26, [sp]
Lloh107:
	adrp	x1, l_.str.12@PAGE
Lloh108:
	add	x1, x1, l_.str.12@PAGEOFF
	mov	x0, x20
	bl	_IWL_DEBUG_RATE
	ldr	w2, [x21, #16]
	mov	x0, x20
	mov	x1, x19
	bl	_rs_fill_link_cmd
	add	x2, x19, #64
Lloh109:
	adrp	x8, _CMD_ASYNC@GOTPAGE
Lloh110:
	ldr	x8, [x8, _CMD_ASYNC@GOTPAGEOFF]
Lloh111:
	ldr	w3, [x8]
	mov	x0, x20
	ldr	x1, [sp, #104]                  ; 8-byte Folded Reload
	mov	w4, #0
	bl	_iwl_send_lq_cmd
                                        ; kill: def $w26 killed $w26 killed $x26 def $x26
	stur	x26, [x29, #-88]                ; 8-byte Folded Spill
	ldr	w26, [sp, #84]                  ; 4-byte Folded Reload
	b	LBB0_58
LBB0_123:
Lloh112:
	adrp	x8, _IWL_RATE_INCREASE_TH@GOTPAGE
Lloh113:
	ldr	x8, [x8, _IWL_RATE_INCREASE_TH@GOTPAGEOFF]
Lloh114:
	ldr	w8, [x8]
	cmp	w21, w8
	cset	w21, ge
	b	LBB0_92
	.loh AdrpAdd	Lloh2, Lloh3
	.loh AdrpLdrGot	Lloh0, Lloh1
	.loh AdrpLdrGotLdr	Lloh4, Lloh5, Lloh6
	.loh AdrpLdrGotLdr	Lloh7, Lloh8, Lloh9
	.loh AdrpLdrGotLdr	Lloh10, Lloh11, Lloh12
	.loh AdrpAdd	Lloh15, Lloh16
	.loh AdrpAdd	Lloh13, Lloh14
	.loh AdrpLdrGotLdr	Lloh17, Lloh18, Lloh19
	.loh AdrpLdrGotLdr	Lloh20, Lloh21, Lloh22
	.loh AdrpLdrGot	Lloh23, Lloh24
	.loh AdrpAdd	Lloh25, Lloh26
	.loh AdrpLdrGotLdr	Lloh27, Lloh28, Lloh29
	.loh AdrpLdrGotLdr	Lloh30, Lloh31, Lloh32
	.loh AdrpLdrGotLdr	Lloh33, Lloh34, Lloh35
	.loh AdrpAdd	Lloh36, Lloh37
	.loh AdrpAdd	Lloh38, Lloh39
	.loh AdrpLdrGotLdr	Lloh40, Lloh41, Lloh42
	.loh AdrpAdd	Lloh43, Lloh44
	.loh AdrpLdrGotLdr	Lloh48, Lloh49, Lloh50
	.loh AdrpLdrGotLdr	Lloh45, Lloh46, Lloh47
	.loh AdrpAdd	Lloh51, Lloh52
	.loh AdrpLdrGotLdr	Lloh53, Lloh54, Lloh55
	.loh AdrpAdd	Lloh56, Lloh57
	.loh AdrpAdd	Lloh58, Lloh59
	.loh AdrpLdrGotLdr	Lloh60, Lloh61, Lloh62
	.loh AdrpAdd	Lloh66, Lloh67
	.loh AdrpLdrGotLdr	Lloh63, Lloh64, Lloh65
	.loh AdrpLdrGotLdr	Lloh68, Lloh69, Lloh70
	.loh AdrpLdrGotLdr	Lloh73, Lloh74, Lloh75
	.loh AdrpAdd	Lloh71, Lloh72
	.loh AdrpLdrGot	Lloh76, Lloh77
	.loh AdrpLdrGotLdr	Lloh78, Lloh79, Lloh80
	.loh AdrpLdrGot	Lloh81, Lloh82
	.loh AdrpAdd	Lloh83, Lloh84
	.loh AdrpLdrGotLdr	Lloh85, Lloh86, Lloh87
	.loh AdrpLdrGot	Lloh88, Lloh89
	.loh AdrpLdrGot	Lloh93, Lloh94
	.loh AdrpLdrGotLdr	Lloh90, Lloh91, Lloh92
	.loh AdrpLdrGot	Lloh95, Lloh96
	.loh AdrpLdrGotLdr	Lloh97, Lloh98, Lloh99
	.loh AdrpLdrGotLdr	Lloh100, Lloh101, Lloh102
	.loh AdrpAdd	Lloh103, Lloh104
	.loh AdrpLdrGot	Lloh105, Lloh106
	.loh AdrpLdrGotLdr	Lloh109, Lloh110, Lloh111
	.loh AdrpAdd	Lloh107, Lloh108
	.loh AdrpLdrGotLdr	Lloh112, Lloh113, Lloh114
	.cfi_endproc
                                        ; -- End function
	.comm	_IWL_RATE_INVALID,4,2           ; @IWL_RATE_INVALID
	.comm	_IWL_INVALID_VALUE,4,2          ; @IWL_INVALID_VALUE
	.comm	_IWL_MAX_TID_COUNT,4,2          ; @IWL_MAX_TID_COUNT
	.section	__TEXT,__cstring,cstring_literals
l_.str:                                 ; @.str
	.asciz	"rate scale calculate new rate for skb\n"

	.comm	_IEEE80211_TX_CTL_NO_ACK,4,2    ; @IEEE80211_TX_CTL_NO_ACK
	.comm	_IWL_AGG_OFF,8,3                ; @IWL_AGG_OFF
l_.str.1:                               ; @.str.1
	.asciz	"Rate scale index %d for type %d\n"

l_.str.2:                               ; @.str.2
	.asciz	"mask 0x%04X\n"

	.comm	_NL80211_BAND_5GHZ,8,3          ; @NL80211_BAND_5GHZ
	.comm	_IWL_FIRST_OFDM_RATE,4,2        ; @IWL_FIRST_OFDM_RATE
l_.str.3:                               ; @.str.3
	.asciz	"Current Rate is not valid\n"

	.comm	_LQ_NONE,8,3                    ; @LQ_NONE
l_.str.4:                               ; @.str.4
	.asciz	"tbl->expected_tpt is NULL\n"

	.comm	_IWL_RATE_MIN_FAILURE_TH,8,3    ; @IWL_RATE_MIN_FAILURE_TH
	.comm	_IWL_RATE_MIN_SUCCESS_TH,4,2    ; @IWL_RATE_MIN_SUCCESS_TH
l_.str.5:                               ; @.str.5
	.asciz	"LQ: still below TH. succ=%d total=%d for index %d\n"

l_.str.6:                               ; @.str.6
	.asciz	"expected_tpt should have been calculated by now\n"

	.comm	_IWL_ANT_OK_MULTI,8,3           ; @IWL_ANT_OK_MULTI
l_.str.7:                               ; @.str.7
	.asciz	"LQ: SWITCHING TO NEW TABLE suc=%d cur-tpt=%d old-tpt=%d\n"

l_.str.8:                               ; @.str.8
	.asciz	"LQ: GOING BACK TO THE OLD TABLE suc=%d cur-tpt=%d old-tpt=%d\n"

	.comm	_IWL_RATE_DECREASE_TH,4,2       ; @IWL_RATE_DECREASE_TH
l_.str.9:                               ; @.str.9
	.asciz	"decrease rate because of low success_ratio\n"

	.comm	_IWL_RATE_INCREASE_TH,4,2       ; @IWL_RATE_INCREASE_TH
l_.str.10:                              ; @.str.10
	.asciz	"decrease rate because of low tpt\n"

	.comm	_IWL_RATE_HIGH_TH,4,2           ; @IWL_RATE_HIGH_TH
	.comm	_IWL_BT_COEX_TRAFFIC_LOAD_HIGH,8,3 ; @IWL_BT_COEX_TRAFFIC_LOAD_HIGH
l_.str.11:                              ; @.str.11
	.asciz	"choose rate scale index %d action %d low %d high %d type %d\n"

	.comm	_IWL_RATE_COUNT,4,2             ; @IWL_RATE_COUNT
l_.str.12:                              ; @.str.12
	.asciz	"Switch current  mcs: %X index: %d\n"

	.comm	_CMD_ASYNC,4,2                  ; @CMD_ASYNC
l_.str.13:                              ; @.str.13
	.asciz	"LQ: STAY in legacy table\n"

	.comm	_IWL_AGG_TPT_THREHOLD,4,2       ; @IWL_AGG_TPT_THREHOLD
l_.str.14:                              ; @.str.14
	.asciz	"try to aggregate tid %d\n"

	.no_dead_strip	_rs_rate_scale_perform
.subsections_via_symbols
