	.section	__TEXT,__text,regular,pure_instructions
	.build_version macos, 13, 0	sdk_version 13, 3
	.p2align	4, 0x90                         ## -- Begin function cfg80211_calculate_bitrate_vht
_cfg80211_calculate_bitrate_vht:        ## @cfg80211_calculate_bitrate_vht
	.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	%rdi, %rbx
	xorl	%edi, %edi
	cmpl	$10, (%rbx)
	setge	%dil
	callq	_WARN_ON_ONCE
	movq	%rax, %rcx
	xorl	%eax, %eax
	testq	%rcx, %rcx
	jne	LBB0_7
## %bb.1:
	movl	4(%rbx), %eax
	movq	_RATE_INFO_FLAGS_160_MHZ_WIDTH@GOTPCREL(%rip), %rcx
	movq	_RATE_INFO_FLAGS_80P80_MHZ_WIDTH@GOTPCREL(%rip), %rdx
	movl	(%rdx), %edx
	orl	(%rcx), %edx
	movl	$3, %ecx
	testl	%eax, %edx
	jne	LBB0_4
## %bb.2:
	movq	_RATE_INFO_FLAGS_80_MHZ_WIDTH@GOTPCREL(%rip), %rdx
	movl	$2, %ecx
	testl	%eax, (%rdx)
	jne	LBB0_4
## %bb.3:
	movq	_RATE_INFO_FLAGS_40_MHZ_WIDTH@GOTPCREL(%rip), %rdx
	xorl	%ecx, %ecx
	testl	%eax, (%rdx)
	setne	%cl
LBB0_4:
	movslq	(%rbx), %rdx
	leaq	(%rcx,%rcx,4), %rcx
	leaq	_cfg80211_calculate_bitrate_vht.base(%rip), %rsi
	leaq	(%rsi,%rcx,8), %rsi
	movl	8(%rbx), %ecx
	imull	(%rsi,%rdx,4), %ecx
	movq	_RATE_INFO_FLAGS_SHORT_GI@GOTPCREL(%rip), %rdx
	testl	%eax, (%rdx)
	je	LBB0_6
## %bb.5:
	movslq	%ecx, %rax
	imulq	$954437177, %rax, %rax          ## imm = 0x38E38E39
	movq	%rax, %rcx
	shrq	$63, %rcx
	shrq	$33, %rax
	addl	%ecx, %eax
	addl	%eax, %eax
	leal	(%rax,%rax,4), %ecx
LBB0_6:
	addl	$50000, %ecx                    ## imm = 0xC350
	movslq	%ecx, %rax
	imulq	$351843721, %rax, %rax          ## imm = 0x14F8B589
	movq	%rax, %rcx
	shrq	$63, %rcx
	sarq	$45, %rax
	addl	%ecx, %eax
LBB0_7:
                                        ## kill: def $eax killed $eax killed $rax
	addq	$8, %rsp
	popq	%rbx
	popq	%rbp
	retq
	.cfi_endproc
                                        ## -- End function
	.section	__TEXT,__const
	.p2align	4                               ## @cfg80211_calculate_bitrate_vht.base
_cfg80211_calculate_bitrate_vht.base:
	.long	6500000                         ## 0x632ea0
	.long	13000000                        ## 0xc65d40
	.long	19500000                        ## 0x1298be0
	.long	26000000                        ## 0x18cba80
	.long	39000000                        ## 0x25317c0
	.long	52000000                        ## 0x3197500
	.long	58500000                        ## 0x37ca3a0
	.long	65000000                        ## 0x3dfd240
	.long	78000000                        ## 0x4a62f80
	.long	0                               ## 0x0
	.long	13500000                        ## 0xcdfe60
	.long	27000000                        ## 0x19bfcc0
	.long	40500000                        ## 0x269fb20
	.long	54000000                        ## 0x337f980
	.long	81000000                        ## 0x4d3f640
	.long	108000000                       ## 0x66ff300
	.long	121500000                       ## 0x73df160
	.long	135000000                       ## 0x80befc0
	.long	162000000                       ## 0x9a7ec80
	.long	180000000                       ## 0xaba9500
	.long	29300000                        ## 0x1bf1520
	.long	58500000                        ## 0x37ca3a0
	.long	87800000                        ## 0x53bb8c0
	.long	117000000                       ## 0x6f94740
	.long	175500000                       ## 0xa75eae0
	.long	234000000                       ## 0xdf28e80
	.long	263300000                       ## 0xfb1a3a0
	.long	292500000                       ## 0x116f3220
	.long	351000000                       ## 0x14ebd5c0
	.long	390000000                       ## 0x173eed80
	.long	58500000                        ## 0x37ca3a0
	.long	117000000                       ## 0x6f94740
	.long	175500000                       ## 0xa75eae0
	.long	234000000                       ## 0xdf28e80
	.long	351000000                       ## 0x14ebd5c0
	.long	468000000                       ## 0x1be51d00
	.long	526500000                       ## 0x1f61c0a0
	.long	585000000                       ## 0x22de6440
	.long	702000000                       ## 0x29d7ab80
	.long	780000000                       ## 0x2e7ddb00

	.comm	_RATE_INFO_FLAGS_160_MHZ_WIDTH,4,2 ## @RATE_INFO_FLAGS_160_MHZ_WIDTH
	.comm	_RATE_INFO_FLAGS_80P80_MHZ_WIDTH,4,2 ## @RATE_INFO_FLAGS_80P80_MHZ_WIDTH
	.comm	_RATE_INFO_FLAGS_80_MHZ_WIDTH,4,2 ## @RATE_INFO_FLAGS_80_MHZ_WIDTH
	.comm	_RATE_INFO_FLAGS_40_MHZ_WIDTH,4,2 ## @RATE_INFO_FLAGS_40_MHZ_WIDTH
	.comm	_RATE_INFO_FLAGS_SHORT_GI,4,2   ## @RATE_INFO_FLAGS_SHORT_GI
	.no_dead_strip	_cfg80211_calculate_bitrate_vht
.subsections_via_symbols

	.section	__TEXT,__text,regular,pure_instructions
	.build_version macos, 13, 0	sdk_version 13, 3
	.p2align	2                               ; -- Begin function cfg80211_calculate_bitrate_vht
_cfg80211_calculate_bitrate_vht:        ; @cfg80211_calculate_bitrate_vht
	.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
	mov	x19, x0
	ldr	w8, [x0]
	cmp	w8, #9
	cset	w0, gt
	bl	_WARN_ON_ONCE
	cbz	x0, LBB0_2
; %bb.1:
	mov	w0, #0
	b	LBB0_10
LBB0_2:
	ldr	w8, [x19, #4]
Lloh0:
	adrp	x9, _RATE_INFO_FLAGS_160_MHZ_WIDTH@GOTPAGE
Lloh1:
	ldr	x9, [x9, _RATE_INFO_FLAGS_160_MHZ_WIDTH@GOTPAGEOFF]
Lloh2:
	ldr	w9, [x9]
Lloh3:
	adrp	x10, _RATE_INFO_FLAGS_80P80_MHZ_WIDTH@GOTPAGE
Lloh4:
	ldr	x10, [x10, _RATE_INFO_FLAGS_80P80_MHZ_WIDTH@GOTPAGEOFF]
Lloh5:
	ldr	w10, [x10]
	orr	w9, w10, w9
	tst	w9, w8
	b.eq	LBB0_4
; %bb.3:
	mov	w9, #3
	b	LBB0_7
LBB0_4:
Lloh6:
	adrp	x9, _RATE_INFO_FLAGS_80_MHZ_WIDTH@GOTPAGE
Lloh7:
	ldr	x9, [x9, _RATE_INFO_FLAGS_80_MHZ_WIDTH@GOTPAGEOFF]
Lloh8:
	ldr	w9, [x9]
	tst	w9, w8
	b.eq	LBB0_6
; %bb.5:
	mov	w9, #2
	b	LBB0_7
LBB0_6:
Lloh9:
	adrp	x9, _RATE_INFO_FLAGS_40_MHZ_WIDTH@GOTPAGE
Lloh10:
	ldr	x9, [x9, _RATE_INFO_FLAGS_40_MHZ_WIDTH@GOTPAGEOFF]
Lloh11:
	ldr	w9, [x9]
	tst	w9, w8
	cset	w9, ne
LBB0_7:
	ldrsw	x10, [x19]
	mov	w11, #40
Lloh12:
	adrp	x12, _cfg80211_calculate_bitrate_vht.base@PAGE
Lloh13:
	add	x12, x12, _cfg80211_calculate_bitrate_vht.base@PAGEOFF
	madd	x9, x9, x11, x12
	ldr	w9, [x9, x10, lsl #2]
	ldr	w10, [x19, #8]
	mul	w9, w10, w9
Lloh14:
	adrp	x10, _RATE_INFO_FLAGS_SHORT_GI@GOTPAGE
Lloh15:
	ldr	x10, [x10, _RATE_INFO_FLAGS_SHORT_GI@GOTPAGEOFF]
Lloh16:
	ldr	w10, [x10]
	tst	w10, w8
	b.eq	LBB0_9
; %bb.8:
	mov	w8, #36409
	movk	w8, #14563, lsl #16
	smull	x8, w9, w8
	lsr	x9, x8, #63
	asr	x8, x8, #33
	add	w8, w8, w9
	add	w8, w8, w8, lsl #2
	lsl	w9, w8, #1
LBB0_9:
	mov	w8, #50000
	add	w8, w9, w8
	mov	w9, #46473
	movk	w9, #5368, lsl #16
	smull	x8, w8, w9
	lsr	x9, x8, #63
	asr	x8, x8, #45
	add	w0, w8, w9
LBB0_10:
	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 AdrpLdrGotLdr	Lloh6, Lloh7, Lloh8
	.loh AdrpLdrGotLdr	Lloh9, Lloh10, Lloh11
	.loh AdrpLdrGotLdr	Lloh14, Lloh15, Lloh16
	.loh AdrpAdd	Lloh12, Lloh13
	.cfi_endproc
                                        ; -- End function
	.section	__TEXT,__const
	.p2align	2                               ; @cfg80211_calculate_bitrate_vht.base
_cfg80211_calculate_bitrate_vht.base:
	.long	6500000                         ; 0x632ea0
	.long	13000000                        ; 0xc65d40
	.long	19500000                        ; 0x1298be0
	.long	26000000                        ; 0x18cba80
	.long	39000000                        ; 0x25317c0
	.long	52000000                        ; 0x3197500
	.long	58500000                        ; 0x37ca3a0
	.long	65000000                        ; 0x3dfd240
	.long	78000000                        ; 0x4a62f80
	.long	0                               ; 0x0
	.long	13500000                        ; 0xcdfe60
	.long	27000000                        ; 0x19bfcc0
	.long	40500000                        ; 0x269fb20
	.long	54000000                        ; 0x337f980
	.long	81000000                        ; 0x4d3f640
	.long	108000000                       ; 0x66ff300
	.long	121500000                       ; 0x73df160
	.long	135000000                       ; 0x80befc0
	.long	162000000                       ; 0x9a7ec80
	.long	180000000                       ; 0xaba9500
	.long	29300000                        ; 0x1bf1520
	.long	58500000                        ; 0x37ca3a0
	.long	87800000                        ; 0x53bb8c0
	.long	117000000                       ; 0x6f94740
	.long	175500000                       ; 0xa75eae0
	.long	234000000                       ; 0xdf28e80
	.long	263300000                       ; 0xfb1a3a0
	.long	292500000                       ; 0x116f3220
	.long	351000000                       ; 0x14ebd5c0
	.long	390000000                       ; 0x173eed80
	.long	58500000                        ; 0x37ca3a0
	.long	117000000                       ; 0x6f94740
	.long	175500000                       ; 0xa75eae0
	.long	234000000                       ; 0xdf28e80
	.long	351000000                       ; 0x14ebd5c0
	.long	468000000                       ; 0x1be51d00
	.long	526500000                       ; 0x1f61c0a0
	.long	585000000                       ; 0x22de6440
	.long	702000000                       ; 0x29d7ab80
	.long	780000000                       ; 0x2e7ddb00

	.comm	_RATE_INFO_FLAGS_160_MHZ_WIDTH,4,2 ; @RATE_INFO_FLAGS_160_MHZ_WIDTH
	.comm	_RATE_INFO_FLAGS_80P80_MHZ_WIDTH,4,2 ; @RATE_INFO_FLAGS_80P80_MHZ_WIDTH
	.comm	_RATE_INFO_FLAGS_80_MHZ_WIDTH,4,2 ; @RATE_INFO_FLAGS_80_MHZ_WIDTH
	.comm	_RATE_INFO_FLAGS_40_MHZ_WIDTH,4,2 ; @RATE_INFO_FLAGS_40_MHZ_WIDTH
	.comm	_RATE_INFO_FLAGS_SHORT_GI,4,2   ; @RATE_INFO_FLAGS_SHORT_GI
	.no_dead_strip	_cfg80211_calculate_bitrate_vht
.subsections_via_symbols
