	.section	__TEXT,__text,regular,pure_instructions
	.build_version macos, 13, 0	sdk_version 13, 3
	.p2align	4, 0x90                         ## -- Begin function pxe_netif_init
_pxe_netif_init:                        ## @pxe_netif_init
	.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	%rbx
	pushq	%rax
	.cfi_offset %rbx, -40
	.cfi_offset %r14, -32
	.cfi_offset %r15, -24
	movq	%rdi, %r14
	movl	$40, %edi
	callq	_bio_alloc
	testq	%rax, %rax
	je	LBB0_34
## %bb.1:
	movq	%rax, %r15
	movq	%rax, %rdi
	movl	$40, %esi
	callq	_bzero
	movq	_PXENV_UNDI_GET_INFORMATION@GOTPCREL(%rip), %rax
	movl	(%rax), %edi
	movq	%r15, %rsi
	callq	_pxe_call
	movq	(%r15), %rsi
	testq	%rsi, %rsi
	je	LBB0_2
## %bb.4:
	leaq	L_.str(%rip), %rdi
LBB0_32:
	callq	_printf
LBB0_33:
	movq	%r15, %rdi
	movl	$40, %esi
	addq	$8, %rsp
	popq	%rbx
	popq	%r14
	popq	%r15
	popq	%rbp
	jmp	_bio_free                       ## TAILCALL
LBB0_2:
	movl	8(%r15), %esi
	testl	%esi, %esi
	jle	LBB0_3
## %bb.5:
	movq	16(%r15), %rax
	xorl	%ecx, %ecx
	.p2align	4, 0x90
LBB0_6:                                 ## =>This Inner Loop Header: Depth=1
	cmpl	$0, (%rax,%rcx,4)
	jne	LBB0_7
## %bb.35:                              ##   in Loop: Header=BB0_6 Depth=1
	incq	%rcx
	cmpq	%rcx, %rsi
	jne	LBB0_6
	jmp	LBB0_10
LBB0_3:
	xorl	%ecx, %ecx
	jmp	LBB0_11
LBB0_7:
	xorl	%ecx, %ecx
	.p2align	4, 0x90
LBB0_8:                                 ## =>This Inner Loop Header: Depth=1
	cmpl	$255, (%rax,%rcx,4)
	jne	LBB0_11
## %bb.9:                               ##   in Loop: Header=BB0_8 Depth=1
	incq	%rcx
	cmpq	%rcx, %rsi
	jne	LBB0_8
LBB0_10:
	movl	%esi, %ecx
LBB0_11:
	xorl	%eax, %eax
	cmpl	%esi, %ecx
	setge	%al
	movq	16(%r15,%rax,8), %rbx
	movl	$8, %edi
                                        ## kill: def $esi killed $esi killed $rsi
	callq	_min
	testl	%eax, %eax
	jle	LBB0_26
## %bb.12:
	movq	(%r14), %rcx
	movl	%eax, %r8d
	xorl	%esi, %esi
	cmpl	$8, %eax
	jb	LBB0_22
## %bb.13:
	movq	%rcx, %rax
	subq	%rbx, %rax
	cmpq	$32, %rax
	jb	LBB0_22
## %bb.14:
	movl	%r8d, %esi
	andl	$-8, %esi
	leaq	-8(%rsi), %rax
	movq	%rax, %rdi
	shrq	$3, %rdi
	incq	%rdi
	movl	%edi, %r9d
	andl	$3, %r9d
	cmpq	$24, %rax
	jae	LBB0_16
## %bb.15:
	xorl	%edx, %edx
	jmp	LBB0_18
LBB0_16:
	andq	$-4, %rdi
	xorl	%edx, %edx
	.p2align	4, 0x90
LBB0_17:                                ## =>This Inner Loop Header: Depth=1
	movups	(%rbx,%rdx,4), %xmm0
	movups	16(%rbx,%rdx,4), %xmm1
	movups	%xmm0, (%rcx,%rdx,4)
	movups	%xmm1, 16(%rcx,%rdx,4)
	movups	32(%rbx,%rdx,4), %xmm0
	movups	48(%rbx,%rdx,4), %xmm1
	movups	%xmm0, 32(%rcx,%rdx,4)
	movups	%xmm1, 48(%rcx,%rdx,4)
	movups	64(%rbx,%rdx,4), %xmm0
	movups	80(%rbx,%rdx,4), %xmm1
	movups	%xmm0, 64(%rcx,%rdx,4)
	movups	%xmm1, 80(%rcx,%rdx,4)
	movups	96(%rbx,%rdx,4), %xmm0
	movups	112(%rbx,%rdx,4), %xmm1
	movups	%xmm0, 96(%rcx,%rdx,4)
	movups	%xmm1, 112(%rcx,%rdx,4)
	addq	$32, %rdx
	addq	$-4, %rdi
	jne	LBB0_17
LBB0_18:
	testq	%r9, %r9
	je	LBB0_21
## %bb.19:
	leaq	(%rcx,%rdx,4), %rdi
	addq	$16, %rdi
	leaq	(%rbx,%rdx,4), %rdx
	addq	$16, %rdx
	shlq	$5, %r9
	xorl	%eax, %eax
	.p2align	4, 0x90
LBB0_20:                                ## =>This Inner Loop Header: Depth=1
	movups	-16(%rdx,%rax), %xmm0
	movups	(%rdx,%rax), %xmm1
	movups	%xmm0, -16(%rdi,%rax)
	movups	%xmm1, (%rdi,%rax)
	addq	$32, %rax
	cmpq	%rax, %r9
	jne	LBB0_20
LBB0_21:
	cmpq	%r8, %rsi
	je	LBB0_26
LBB0_22:
	movq	%rsi, %rax
	notq	%rax
	addq	%r8, %rax
	movq	%r8, %rdx
	andq	$3, %rdx
	je	LBB0_24
	.p2align	4, 0x90
LBB0_23:                                ## =>This Inner Loop Header: Depth=1
	movl	(%rbx,%rsi,4), %edi
	movl	%edi, (%rcx,%rsi,4)
	incq	%rsi
	decq	%rdx
	jne	LBB0_23
LBB0_24:
	cmpq	$3, %rax
	jb	LBB0_26
	.p2align	4, 0x90
LBB0_25:                                ## =>This Inner Loop Header: Depth=1
	movl	(%rbx,%rsi,4), %eax
	movl	%eax, (%rcx,%rsi,4)
	movl	4(%rbx,%rsi,4), %eax
	movl	%eax, 4(%rcx,%rsi,4)
	movl	8(%rbx,%rsi,4), %eax
	movl	%eax, 8(%rcx,%rsi,4)
	movl	12(%rbx,%rsi,4), %eax
	movl	%eax, 12(%rcx,%rsi,4)
	addq	$4, %rsi
	cmpq	%rsi, %r8
	jne	LBB0_25
LBB0_26:
	movq	_bootp_response@GOTPCREL(%rip), %rax
	movq	(%rax), %rax
	testq	%rax, %rax
	je	LBB0_27
## %bb.28:
	movq	(%rax), %rax
	jmp	LBB0_29
LBB0_27:
	xorl	%eax, %eax
LBB0_29:
	movq	%rax, 8(%r14)
	movq	%r15, %rdi
	movl	$40, %esi
	callq	_bio_free
	movl	$40, %edi
	callq	_bio_alloc
	testq	%rax, %rax
	je	LBB0_34
## %bb.30:
	movq	%rax, %r15
	movq	%rax, %rdi
	movl	$40, %esi
	callq	_bzero
	movq	_FLTR_DIRECTED@GOTPCREL(%rip), %rax
	movq	_FLTR_BRDCST@GOTPCREL(%rip), %rcx
	movl	(%rcx), %ecx
	orl	(%rax), %ecx
	movl	%ecx, 32(%r15)
	movq	_PXENV_UNDI_OPEN@GOTPCREL(%rip), %rax
	movl	(%rax), %edi
	movq	%r15, %rsi
	callq	_pxe_call
	movq	(%r15), %rsi
	testq	%rsi, %rsi
	je	LBB0_33
## %bb.31:
	leaq	L_.str.1(%rip), %rdi
	jmp	LBB0_32
LBB0_34:
	addq	$8, %rsp
	popq	%rbx
	popq	%r14
	popq	%r15
	popq	%rbp
	retq
	.cfi_endproc
                                        ## -- End function
	.comm	_PXENV_UNDI_GET_INFORMATION,4,2 ## @PXENV_UNDI_GET_INFORMATION
	.section	__TEXT,__cstring,cstring_literals
L_.str:                                 ## @.str
	.asciz	"undi get info failed: %x\n"

	.comm	_bootp_response,8,3             ## @bootp_response
	.comm	_FLTR_DIRECTED,4,2              ## @FLTR_DIRECTED
	.comm	_FLTR_BRDCST,4,2                ## @FLTR_BRDCST
	.comm	_PXENV_UNDI_OPEN,4,2            ## @PXENV_UNDI_OPEN
L_.str.1:                               ## @.str.1
	.asciz	"undi open failed: %x\n"

	.no_dead_strip	_pxe_netif_init
.subsections_via_symbols

	.section	__TEXT,__text,regular,pure_instructions
	.build_version macos, 13, 0	sdk_version 13, 3
	.p2align	2                               ; -- Begin function pxe_netif_init
_pxe_netif_init:                        ; @pxe_netif_init
	.cfi_startproc
; %bb.0:
	stp	x22, x21, [sp, #-48]!           ; 16-byte Folded Spill
	.cfi_def_cfa_offset 48
	stp	x20, x19, [sp, #16]             ; 16-byte Folded Spill
	stp	x29, x30, [sp, #32]             ; 16-byte Folded Spill
	add	x29, sp, #32
	.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
	mov	x20, x0
	mov	w0, #40
	bl	_bio_alloc
	cbz	x0, LBB0_27
; %bb.1:
	mov	x19, x0
	mov	w1, #40
	bl	_bzero
Lloh0:
	adrp	x8, _PXENV_UNDI_GET_INFORMATION@GOTPAGE
Lloh1:
	ldr	x8, [x8, _PXENV_UNDI_GET_INFORMATION@GOTPAGEOFF]
Lloh2:
	ldr	w0, [x8]
	mov	x1, x19
	bl	_pxe_call
	ldr	x1, [x19]
	cbz	x1, LBB0_5
; %bb.2:
Lloh3:
	adrp	x0, l_.str@PAGE
Lloh4:
	add	x0, x0, l_.str@PAGEOFF
LBB0_3:
	bl	_printf
LBB0_4:
	mov	x0, x19
	mov	w1, #40
	ldp	x29, x30, [sp, #32]             ; 16-byte Folded Reload
	ldp	x20, x19, [sp, #16]             ; 16-byte Folded Reload
	ldp	x22, x21, [sp], #48             ; 16-byte Folded Reload
	b	_bio_free
LBB0_5:
	ldr	w1, [x19, #8]
	cmp	w1, #1
	b.lt	LBB0_9
; %bb.6:
	ldr	x8, [x19, #16]
	mov	x9, x1
	mov	x10, x8
LBB0_7:                                 ; =>This Inner Loop Header: Depth=1
	ldr	w11, [x10]
	cbnz	w11, LBB0_10
; %bb.8:                                ;   in Loop: Header=BB0_7 Depth=1
	add	x10, x10, #4
	subs	x9, x9, #1
	b.ne	LBB0_7
	b	LBB0_13
LBB0_9:
	mov	w9, #0
	b	LBB0_14
LBB0_10:
	mov	x9, #0
LBB0_11:                                ; =>This Inner Loop Header: Depth=1
	ldr	w10, [x8, x9, lsl #2]
	cmp	w10, #255
	b.ne	LBB0_14
; %bb.12:                               ;   in Loop: Header=BB0_11 Depth=1
	add	x9, x9, #1
	cmp	x1, x9
	b.ne	LBB0_11
LBB0_13:
	mov	x9, x1
LBB0_14:
	cmp	w9, w1
	mov	w8, #24
	mov	w9, #16
	csel	x8, x9, x8, lt
	ldr	x21, [x19, x8]
	mov	w0, #8
                                        ; kill: def $w1 killed $w1 killed $x1
	bl	_min
	cmp	w0, #1
	b.lt	LBB0_22
; %bb.15:
	mov	x8, #0
	ldr	x10, [x20]
	mov	w9, w0
	cmp	w0, #16
	b.lo	LBB0_20
; %bb.16:
	sub	x11, x10, x21
	cmp	x11, #64
	b.lo	LBB0_20
; %bb.17:
	and	x8, x9, #0xfffffff0
	add	x11, x10, #32
	add	x12, x21, #32
	mov	x13, x8
LBB0_18:                                ; =>This Inner Loop Header: Depth=1
	ldp	q0, q1, [x12, #-32]
	ldp	q2, q3, [x12], #64
	stp	q0, q1, [x11, #-32]
	stp	q2, q3, [x11], #64
	subs	x13, x13, #16
	b.ne	LBB0_18
; %bb.19:
	cmp	x8, x9
	b.eq	LBB0_22
LBB0_20:
	lsl	x11, x8, #2
	add	x10, x10, x11
	add	x11, x21, x11
	sub	x8, x9, x8
LBB0_21:                                ; =>This Inner Loop Header: Depth=1
	ldr	w9, [x11], #4
	str	w9, [x10], #4
	subs	x8, x8, #1
	b.ne	LBB0_21
LBB0_22:
Lloh5:
	adrp	x8, _bootp_response@GOTPAGE
Lloh6:
	ldr	x8, [x8, _bootp_response@GOTPAGEOFF]
Lloh7:
	ldr	x8, [x8]
	cbz	x8, LBB0_24
; %bb.23:
	ldr	x8, [x8]
LBB0_24:
	str	x8, [x20, #8]
	mov	x0, x19
	mov	w1, #40
	bl	_bio_free
	mov	w0, #40
	bl	_bio_alloc
	cbz	x0, LBB0_27
; %bb.25:
	mov	x19, x0
	mov	w1, #40
	bl	_bzero
Lloh8:
	adrp	x8, _FLTR_DIRECTED@GOTPAGE
Lloh9:
	ldr	x8, [x8, _FLTR_DIRECTED@GOTPAGEOFF]
Lloh10:
	ldr	w8, [x8]
Lloh11:
	adrp	x9, _FLTR_BRDCST@GOTPAGE
Lloh12:
	ldr	x9, [x9, _FLTR_BRDCST@GOTPAGEOFF]
Lloh13:
	ldr	w9, [x9]
	orr	w8, w9, w8
	str	w8, [x19, #32]
Lloh14:
	adrp	x8, _PXENV_UNDI_OPEN@GOTPAGE
Lloh15:
	ldr	x8, [x8, _PXENV_UNDI_OPEN@GOTPAGEOFF]
Lloh16:
	ldr	w0, [x8]
	mov	x1, x19
	bl	_pxe_call
	ldr	x1, [x19]
	cbz	x1, LBB0_4
; %bb.26:
Lloh17:
	adrp	x0, l_.str.1@PAGE
Lloh18:
	add	x0, x0, l_.str.1@PAGEOFF
	b	LBB0_3
LBB0_27:
	ldp	x29, x30, [sp, #32]             ; 16-byte Folded Reload
	ldp	x20, x19, [sp, #16]             ; 16-byte Folded Reload
	ldp	x22, x21, [sp], #48             ; 16-byte Folded Reload
	ret
	.loh AdrpLdrGotLdr	Lloh0, Lloh1, Lloh2
	.loh AdrpAdd	Lloh3, Lloh4
	.loh AdrpLdrGotLdr	Lloh5, Lloh6, Lloh7
	.loh AdrpLdrGotLdr	Lloh14, Lloh15, Lloh16
	.loh AdrpLdrGotLdr	Lloh11, Lloh12, Lloh13
	.loh AdrpLdrGotLdr	Lloh8, Lloh9, Lloh10
	.loh AdrpAdd	Lloh17, Lloh18
	.cfi_endproc
                                        ; -- End function
	.comm	_PXENV_UNDI_GET_INFORMATION,4,2 ; @PXENV_UNDI_GET_INFORMATION
	.section	__TEXT,__cstring,cstring_literals
l_.str:                                 ; @.str
	.asciz	"undi get info failed: %x\n"

	.comm	_bootp_response,8,3             ; @bootp_response
	.comm	_FLTR_DIRECTED,4,2              ; @FLTR_DIRECTED
	.comm	_FLTR_BRDCST,4,2                ; @FLTR_BRDCST
	.comm	_PXENV_UNDI_OPEN,4,2            ; @PXENV_UNDI_OPEN
l_.str.1:                               ; @.str.1
	.asciz	"undi open failed: %x\n"

	.no_dead_strip	_pxe_netif_init
.subsections_via_symbols
