	.section	__TEXT,__text,regular,pure_instructions
	.build_version macos, 13, 0	sdk_version 13, 3
	.globl	_main                           ## -- Begin function main
	.p2align	4, 0x90
_main:                                  ## @main
	.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	$88, %rsp
	.cfi_offset %rbx, -56
	.cfi_offset %r12, -48
	.cfi_offset %r13, -40
	.cfi_offset %r14, -32
	.cfi_offset %r15, -24
	movq	%rsi, %r14
	movl	%edi, %ebx
	movq	%rsp, %r15
	movq	___stack_chk_guard@GOTPCREL(%rip), %rax
	movq	(%rax), %rax
	movq	%rax, -48(%rbp)
	movq	_MAXSOCK@GOTPCREL(%rip), %rax
	movl	(%rax), %eax
	shlq	$2, %rax
	callq	____chkstk_darwin
	addq	$15, %rax
	andq	$-16, %rax
	subq	%rax, %rsp
	movq	%rsp, %r12
	cmpl	$1, %ebx
	jg	LBB0_2
## %bb.1:
	xorl	%eax, %eax
	callq	_usage
LBB0_2:
	leaq	-128(%rbp), %rdi
	xorl	%esi, %esi
	movl	$40, %edx
	callq	_memset
	movq	_PF_UNSPEC@GOTPCREL(%rip), %rax
	movl	(%rax), %eax
	movl	%eax, -112(%rbp)
	movq	_SOCK_DGRAM@GOTPCREL(%rip), %rax
	movl	(%rax), %eax
	movl	%eax, -116(%rbp)
	movq	_AI_PASSIVE@GOTPCREL(%rip), %rax
	movl	(%rax), %eax
	movl	%eax, -96(%rbp)
	movq	8(%r14), %rdi
	leaq	-64(%rbp), %rsi
	movl	$10, %edx
	callq	_strtoul
	movl	%eax, %r13d
	leal	-65536(%r13), %eax
	cmpl	$-65535, %eax                   ## imm = 0xFFFF0001
	jb	LBB0_4
## %bb.3:
	movq	-64(%rbp), %rax
	cmpb	$0, (%rax)
	je	LBB0_5
LBB0_4:
	xorl	%eax, %eax
	callq	_usage
LBB0_5:
	movl	$1, -52(%rbp)                   ## 4-byte Folded Spill
	cmpl	$3, %ebx
	jl	LBB0_8
## %bb.6:
	movq	16(%r14), %rdi
	leaq	-64(%rbp), %rsi
	movl	$10, %edx
	callq	_strtoul
	movl	%eax, -52(%rbp)                 ## 4-byte Spill
	addl	$-65, %eax
	cmpl	$-65, %eax
	ja	LBB0_8
## %bb.7:
	xorl	%eax, %eax
	callq	_usage
LBB0_8:
	movl	$65536, %edi                    ## imm = 0x10000
	callq	_malloc
	testq	%rax, %rax
	je	LBB0_9
## %bb.11:
	movq	%rax, %rdi
	movl	$65536, %esi                    ## imm = 0x10000
	callq	_bzero
	movq	8(%r14), %rsi
	leaq	-128(%rbp), %rdx
	leaq	-72(%rbp), %rcx
	xorl	%edi, %edi
	callq	_getaddrinfo
	testl	%eax, %eax
	jne	LBB0_29
## %bb.12:
	movq	%r13, -88(%rbp)                 ## 8-byte Spill
	movq	-72(%rbp), %r14
	xorl	%r13d, %r13d
	testq	%r14, %r14
	je	LBB0_25
## %bb.13:
	movq	_MAXSOCK@GOTPCREL(%rip), %rax
	cmpl	$0, (%rax)
	jle	LBB0_25
## %bb.14:
	movq	%r15, -80(%rbp)                 ## 8-byte Spill
	xorl	%ebx, %ebx
	xorl	%r13d, %r13d
	.p2align	4, 0x90
LBB0_15:                                ## =>This Inner Loop Header: Depth=1
	movl	16(%r14), %edi
	movl	8(%r14), %edx
	movl	12(%r14), %esi
	callq	_socket
	movl	%eax, %r15d
	movslq	%ebx, %rax
	movl	%r15d, (%r12,%rax,4)
	testl	%r15d, %r15d
	js	LBB0_16
## %bb.17:                              ##   in Loop: Header=BB0_15 Depth=1
	movl	$131072, -56(%rbp)              ## imm = 0x20000
	movq	_SOL_SOCKET@GOTPCREL(%rip), %rax
	movl	(%rax), %esi
	movq	_SO_RCVBUF@GOTPCREL(%rip), %rax
	movl	(%rax), %edx
	movl	%r15d, %edi
	leaq	-56(%rbp), %rcx
	movl	$4, %r8d
	callq	_setsockopt
	testq	%rax, %rax
	js	LBB0_18
## %bb.19:                              ##   in Loop: Header=BB0_15 Depth=1
	movl	(%r14), %edx
	movl	4(%r14), %esi
	movl	%r15d, %edi
	callq	_bind
	movl	%r15d, %edi
	testq	%rax, %rax
	js	LBB0_20
## %bb.21:                              ##   in Loop: Header=BB0_15 Depth=1
	movl	$5, %esi
	callq	_listen
	incl	%ebx
	jmp	LBB0_22
	.p2align	4, 0x90
LBB0_16:                                ##   in Loop: Header=BB0_15 Depth=1
	leaq	L_.str.1(%rip), %r13
	jmp	LBB0_22
	.p2align	4, 0x90
LBB0_18:                                ##   in Loop: Header=BB0_15 Depth=1
	movl	%r15d, %edi
	callq	_close
	leaq	L_.str.2(%rip), %r13
	jmp	LBB0_22
LBB0_20:                                ##   in Loop: Header=BB0_15 Depth=1
	callq	_close
	leaq	L_.str.3(%rip), %r13
	.p2align	4, 0x90
LBB0_22:                                ##   in Loop: Header=BB0_15 Depth=1
	movq	24(%r14), %r14
	testq	%r14, %r14
	je	LBB0_24
## %bb.23:                              ##   in Loop: Header=BB0_15 Depth=1
	movq	_MAXSOCK@GOTPCREL(%rip), %rax
	cmpl	(%rax), %ebx
	jl	LBB0_15
LBB0_24:
	testl	%ebx, %ebx
	movq	-80(%rbp), %r15                 ## 8-byte Reload
	je	LBB0_25
## %bb.26:
	leaq	L_.str.4(%rip), %rdi
	movl	%ebx, %esi
	movl	-52(%rbp), %r14d                ## 4-byte Reload
	movl	%r14d, %edx
	movq	-88(%rbp), %rcx                 ## 8-byte Reload
                                        ## kill: def $ecx killed $ecx killed $rcx
	callq	_printf
	movq	%r12, %rdi
	movl	%ebx, %esi
	movl	%r14d, %edx
	callq	_make_threads
	movq	%rax, %rdi
	movl	%ebx, %esi
	movl	%r14d, %edx
	callq	_main_thread
	movq	-72(%rbp), %rdi
	callq	_freeaddrinfo
	xorl	%eax, %eax
	jmp	LBB0_27
LBB0_25:
	movq	%r13, %rdi
	jmp	LBB0_10
LBB0_9:
	leaq	L_.str(%rip), %rdi
	jmp	LBB0_10
LBB0_29:
	movl	%eax, %edi
	callq	_gai_strerror
	movq	%rax, %rdi
LBB0_10:
	callq	_perror
	movl	$-1, %eax
LBB0_27:
	movq	%r15, %rsp
	movq	___stack_chk_guard@GOTPCREL(%rip), %rcx
	movq	(%rcx), %rcx
	cmpq	-48(%rbp), %rcx
	jne	LBB0_30
## %bb.28:
	leaq	-40(%rbp), %rsp
	popq	%rbx
	popq	%r12
	popq	%r13
	popq	%r14
	popq	%r15
	popq	%rbp
	retq
LBB0_30:
	callq	___stack_chk_fail
	.cfi_endproc
                                        ## -- End function
	.comm	_MAXSOCK,4,2                    ## @MAXSOCK
	.comm	_PF_UNSPEC,4,2                  ## @PF_UNSPEC
	.comm	_SOCK_DGRAM,4,2                 ## @SOCK_DGRAM
	.comm	_AI_PASSIVE,4,2                 ## @AI_PASSIVE
	.section	__TEXT,__cstring,cstring_literals
L_.str:                                 ## @.str
	.asciz	"malloc"

L_.str.1:                               ## @.str.1
	.asciz	"socket"

	.comm	_SOL_SOCKET,4,2                 ## @SOL_SOCKET
	.comm	_SO_RCVBUF,4,2                  ## @SO_RCVBUF
L_.str.2:                               ## @.str.2
	.asciz	"SO_RCVBUF"

L_.str.3:                               ## @.str.3
	.asciz	"bind"

L_.str.4:                               ## @.str.4
	.asciz	"netreceive %d sockets x %d threads listening on UDP port %d\n"

.subsections_via_symbols

	.section	__TEXT,__text,regular,pure_instructions
	.build_version macos, 13, 0	sdk_version 13, 3
	.globl	_main                           ; -- Begin function main
	.p2align	2
_main:                                  ; @main
	.cfi_startproc
; %bb.0:
	stp	x28, x27, [sp, #-96]!           ; 16-byte Folded Spill
	.cfi_def_cfa_offset 96
	stp	x26, x25, [sp, #16]             ; 16-byte Folded Spill
	stp	x24, x23, [sp, #32]             ; 16-byte Folded Spill
	stp	x22, x21, [sp, #48]             ; 16-byte Folded Spill
	stp	x20, x19, [sp, #64]             ; 16-byte Folded Spill
	stp	x29, x30, [sp, #80]             ; 16-byte Folded Spill
	add	x29, sp, #80
	.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
	sub	sp, sp, #96
	mov	x22, x1
	mov	x21, x0
	mov	x20, sp
Lloh0:
	adrp	x8, ___stack_chk_guard@GOTPAGE
Lloh1:
	ldr	x8, [x8, ___stack_chk_guard@GOTPAGEOFF]
Lloh2:
	ldr	x8, [x8]
	stur	x8, [x29, #-88]
Lloh3:
	adrp	x26, _MAXSOCK@GOTPAGE
Lloh4:
	ldr	x26, [x26, _MAXSOCK@GOTPAGEOFF]
	ldr	w8, [x26]
	lsl	x8, x8, #2
	mov	x9, x8
Lloh5:
	adrp	x16, ___chkstk_darwin@GOTPAGE
Lloh6:
	ldr	x16, [x16, ___chkstk_darwin@GOTPAGEOFF]
	blr	x16
	mov	x9, sp
	add	x8, x8, #15
	and	x8, x8, #0x7fffffff0
	sub	x19, x9, x8
	mov	sp, x19
	cmp	w0, #1
	b.gt	LBB0_2
; %bb.1:
	bl	_usage
LBB0_2:
	sub	x0, x29, #128
	mov	w1, #0
	mov	w2, #40
	bl	_memset
Lloh7:
	adrp	x8, _PF_UNSPEC@GOTPAGE
Lloh8:
	ldr	x8, [x8, _PF_UNSPEC@GOTPAGEOFF]
Lloh9:
	ldr	w8, [x8]
Lloh10:
	adrp	x9, _SOCK_DGRAM@GOTPAGE
Lloh11:
	ldr	x9, [x9, _SOCK_DGRAM@GOTPAGEOFF]
Lloh12:
	ldr	w9, [x9]
	stp	w9, w8, [x29, #-116]
Lloh13:
	adrp	x8, _AI_PASSIVE@GOTPAGE
Lloh14:
	ldr	x8, [x8, _AI_PASSIVE@GOTPAGEOFF]
Lloh15:
	ldr	w8, [x8]
	stur	w8, [x29, #-96]
	ldr	x0, [x22, #8]
	sub	x1, x29, #144
	mov	w2, #10
	bl	_strtoul
	mov	x24, x0
	sub	w8, w0, #16, lsl #12            ; =65536
	mov	w9, #-65535
	cmp	w8, w9
	b.lo	LBB0_4
; %bb.3:
	ldur	x8, [x29, #-144]
	ldrb	w8, [x8]
	cbz	w8, LBB0_5
LBB0_4:
	bl	_usage
LBB0_5:
	cmp	w21, #3
	b.lt	LBB0_8
; %bb.6:
	ldr	x0, [x22, #16]
	sub	x1, x29, #144
	mov	w2, #10
	bl	_strtoul
	mov	x21, x0
	sub	w8, w0, #65
	cmn	w8, #65
	b.hi	LBB0_9
; %bb.7:
	bl	_usage
	b	LBB0_9
LBB0_8:
	mov	w21, #1
LBB0_9:
	mov	w0, #65536
	bl	_malloc
	cbz	x0, LBB0_25
; %bb.10:
	mov	w1, #65536
	bl	_bzero
	ldr	x1, [x22, #8]
	sub	x2, x29, #128
	sub	x3, x29, #136
	mov	x0, #0
	bl	_getaddrinfo
	cbnz	w0, LBB0_26
; %bb.11:
	mov	x23, #0
	ldur	x27, [x29, #-136]
	cbz	x27, LBB0_24
; %bb.12:
	stp	w21, w24, [x29, #-168]          ; 8-byte Folded Spill
	ldr	w8, [x26]
	cmp	w8, #1
	b.lt	LBB0_24
; %bb.13:
	stur	x20, [x29, #-160]               ; 8-byte Folded Spill
	mov	w22, #0
	mov	x23, #0
Lloh16:
	adrp	x28, l_.str.1@PAGE
Lloh17:
	add	x28, x28, l_.str.1@PAGEOFF
	mov	w25, #131072
Lloh18:
	adrp	x20, _SOL_SOCKET@GOTPAGE
Lloh19:
	ldr	x20, [x20, _SOL_SOCKET@GOTPAGEOFF]
Lloh20:
	adrp	x21, _SO_RCVBUF@GOTPAGE
Lloh21:
	ldr	x21, [x21, _SO_RCVBUF@GOTPAGEOFF]
	b	LBB0_16
LBB0_14:                                ;   in Loop: Header=BB0_16 Depth=1
	mov	x23, x28
LBB0_15:                                ;   in Loop: Header=BB0_16 Depth=1
	ldr	x27, [x27, #24]
	ldr	w8, [x26]
	cmp	x27, #0
	ccmp	w22, w8, #0, ne
	b.ge	LBB0_22
LBB0_16:                                ; =>This Inner Loop Header: Depth=1
	ldp	w1, w0, [x27, #12]
	ldr	w2, [x27, #8]
	bl	_socket
	str	w0, [x19, w22, sxtw #2]
	tbnz	w0, #31, LBB0_14
; %bb.17:                               ;   in Loop: Header=BB0_16 Depth=1
	mov	x24, x0
	stur	w25, [x29, #-148]
	ldr	w1, [x20]
	ldr	w2, [x21]
	sub	x3, x29, #148
	mov	w4, #4
	bl	_setsockopt
	tbnz	x0, #63, LBB0_20
; %bb.18:                               ;   in Loop: Header=BB0_16 Depth=1
	ldp	w2, w1, [x27]
	mov	x0, x24
	bl	_bind
	tbnz	x0, #63, LBB0_21
; %bb.19:                               ;   in Loop: Header=BB0_16 Depth=1
	mov	x0, x24
	mov	w1, #5
	bl	_listen
	add	w22, w22, #1
	b	LBB0_15
LBB0_20:                                ;   in Loop: Header=BB0_16 Depth=1
	mov	x0, x24
	bl	_close
Lloh22:
	adrp	x23, l_.str.2@PAGE
Lloh23:
	add	x23, x23, l_.str.2@PAGEOFF
	b	LBB0_15
LBB0_21:                                ;   in Loop: Header=BB0_16 Depth=1
	mov	x0, x24
	bl	_close
Lloh24:
	adrp	x23, l_.str.3@PAGE
Lloh25:
	add	x23, x23, l_.str.3@PAGEOFF
	b	LBB0_15
LBB0_22:
	ldur	x20, [x29, #-160]               ; 8-byte Folded Reload
	cbz	w22, LBB0_24
; %bb.23:
Lloh26:
	adrp	x0, l_.str.4@PAGE
Lloh27:
	add	x0, x0, l_.str.4@PAGEOFF
	mov	x1, x22
	ldp	w21, w3, [x29, #-168]           ; 8-byte Folded Reload
	mov	x2, x21
	bl	_printf
	mov	x0, x19
	mov	x1, x22
	mov	x2, x21
	bl	_make_threads
	mov	x1, x22
	mov	x2, x21
	bl	_main_thread
	ldur	x0, [x29, #-136]
	bl	_freeaddrinfo
	mov	w0, #0
	b	LBB0_28
LBB0_24:
	mov	x0, x23
	b	LBB0_27
LBB0_25:
Lloh28:
	adrp	x0, l_.str@PAGE
Lloh29:
	add	x0, x0, l_.str@PAGEOFF
	b	LBB0_27
LBB0_26:
	bl	_gai_strerror
LBB0_27:
	bl	_perror
	mov	w0, #-1
LBB0_28:
	mov	sp, x20
	ldur	x8, [x29, #-88]
Lloh30:
	adrp	x9, ___stack_chk_guard@GOTPAGE
Lloh31:
	ldr	x9, [x9, ___stack_chk_guard@GOTPAGEOFF]
Lloh32:
	ldr	x9, [x9]
	cmp	x9, x8
	b.ne	LBB0_30
; %bb.29:
	sub	sp, x29, #80
	ldp	x29, x30, [sp, #80]             ; 16-byte Folded Reload
	ldp	x20, x19, [sp, #64]             ; 16-byte Folded Reload
	ldp	x22, x21, [sp, #48]             ; 16-byte Folded Reload
	ldp	x24, x23, [sp, #32]             ; 16-byte Folded Reload
	ldp	x26, x25, [sp, #16]             ; 16-byte Folded Reload
	ldp	x28, x27, [sp], #96             ; 16-byte Folded Reload
	ret
LBB0_30:
	bl	___stack_chk_fail
	.loh AdrpLdrGot	Lloh5, Lloh6
	.loh AdrpLdrGot	Lloh3, Lloh4
	.loh AdrpLdrGotLdr	Lloh0, Lloh1, Lloh2
	.loh AdrpLdrGotLdr	Lloh13, Lloh14, Lloh15
	.loh AdrpLdrGotLdr	Lloh10, Lloh11, Lloh12
	.loh AdrpLdrGotLdr	Lloh7, Lloh8, Lloh9
	.loh AdrpLdrGot	Lloh20, Lloh21
	.loh AdrpLdrGot	Lloh18, Lloh19
	.loh AdrpAdd	Lloh16, Lloh17
	.loh AdrpAdd	Lloh22, Lloh23
	.loh AdrpAdd	Lloh24, Lloh25
	.loh AdrpAdd	Lloh26, Lloh27
	.loh AdrpAdd	Lloh28, Lloh29
	.loh AdrpLdrGotLdr	Lloh30, Lloh31, Lloh32
	.cfi_endproc
                                        ; -- End function
	.comm	_MAXSOCK,4,2                    ; @MAXSOCK
	.comm	_PF_UNSPEC,4,2                  ; @PF_UNSPEC
	.comm	_SOCK_DGRAM,4,2                 ; @SOCK_DGRAM
	.comm	_AI_PASSIVE,4,2                 ; @AI_PASSIVE
	.section	__TEXT,__cstring,cstring_literals
l_.str:                                 ; @.str
	.asciz	"malloc"

l_.str.1:                               ; @.str.1
	.asciz	"socket"

	.comm	_SOL_SOCKET,4,2                 ; @SOL_SOCKET
	.comm	_SO_RCVBUF,4,2                  ; @SO_RCVBUF
l_.str.2:                               ; @.str.2
	.asciz	"SO_RCVBUF"

l_.str.3:                               ; @.str.3
	.asciz	"bind"

l_.str.4:                               ; @.str.4
	.asciz	"netreceive %d sockets x %d threads listening on UDP port %d\n"

.subsections_via_symbols
