	.section	__TEXT,__text,regular,pure_instructions
	.build_version macos, 13, 0	sdk_version 13, 3
	.globl	_linux_ptrace                   ## -- Begin function linux_ptrace
	.p2align	4, 0x90
_linux_ptrace:                          ## @linux_ptrace
	.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, %r15
	movl	(%rsi), %edx
	leal	-128(%rdx), %ecx
	cmpl	$18, %ecx
	ja	LBB0_28
## %bb.1:
	movq	%rsi, %rbx
	movq	16(%rsi), %r14
	movq	8(%rsi), %rax
	leaq	LJTI0_0(%rip), %rdx
	movslq	(%rdx,%rcx,4), %rcx
	addq	%rdx, %rcx
	jmpq	*%rcx
LBB0_3:
	movslq	4(%rbx), %rcx
	movq	%r15, %rdi
	movq	%r14, %rsi
	movq	%rax, %rdx
	callq	_linux_ptrace_peek
	testl	%eax, %eax
	jne	LBB0_29
## %bb.4:
	movq	8(%rbx), %rdx
	addq	$4, %rdx
	movslq	4(%rbx), %rcx
	addq	$4, %rcx
	movq	%r15, %rdi
	movq	%r14, %rsi
	addq	$8, %rsp
	popq	%rbx
	popq	%r14
	popq	%r15
	popq	%rbp
	jmp	_linux_ptrace_peek              ## TAILCALL
LBB0_28:
	leaq	L_.str(%rip), %rsi
	movq	%r15, %rdi
                                        ## kill: def $edx killed $edx killed $rdx
	callq	_linux_msg
	movq	_EINVAL@GOTPCREL(%rip), %rax
	movl	(%rax), %eax
	jmp	LBB0_29
LBB0_2:
	movq	_PT_TRACE_ME@GOTPCREL(%rip), %rax
	movl	(%rax), %esi
	movq	%r15, %rdi
	xorl	%edx, %edx
	xorl	%ecx, %ecx
	xorl	%r8d, %r8d
	jmp	LBB0_8
LBB0_22:
	movl	4(%rbx), %edi
	leaq	-28(%rbp), %rsi
	callq	_map_signum
	testl	%eax, %eax
	jne	LBB0_29
## %bb.23:
	movq	_PT_SYSCALL@GOTPCREL(%rip), %rax
	jmp	LBB0_13
LBB0_15:
	movl	4(%rbx), %edi
	leaq	-28(%rbp), %rsi
	callq	_map_signum
	testl	%eax, %eax
	jne	LBB0_29
## %bb.16:
	movq	_PT_STEP@GOTPCREL(%rip), %rax
	jmp	LBB0_13
LBB0_18:
	movslq	4(%rbx), %rdx
	movq	%r15, %rdi
	movq	%r14, %rsi
	addq	$8, %rsp
	popq	%rbx
	popq	%r14
	popq	%r15
	popq	%rbp
	jmp	_linux_ptrace_setregs           ## TAILCALL
LBB0_24:
	movl	4(%rbx), %edx
	movq	%r15, %rdi
	movq	%r14, %rsi
	addq	$8, %rsp
	popq	%rbx
	popq	%r14
	popq	%r15
	popq	%rbp
	jmp	_linux_ptrace_setoptions        ## TAILCALL
LBB0_27:
	movl	4(%rbx), %ecx
	movq	%r15, %rdi
	movq	%r14, %rsi
	movq	%rax, %rdx
	addq	$8, %rsp
	popq	%rbx
	popq	%r14
	popq	%r15
	popq	%rbp
	jmp	_linux_ptrace_seize             ## TAILCALL
LBB0_10:
	movslq	4(%rbx), %rcx
	movq	%r15, %rdi
	movq	%r14, %rsi
	movq	%rax, %rdx
	addq	$8, %rsp
	popq	%rbx
	popq	%r14
	popq	%r15
	popq	%rbp
	jmp	_linux_ptrace_pokeuser          ## TAILCALL
LBB0_6:
	movq	_PT_WRITE_I@GOTPCREL(%rip), %rcx
	jmp	LBB0_7
LBB0_9:
	movq	_PT_WRITE_D@GOTPCREL(%rip), %rcx
	jmp	LBB0_7
LBB0_5:
	movslq	4(%rbx), %rcx
	movq	%r15, %rdi
	movq	%r14, %rsi
	movq	%rax, %rdx
	addq	$8, %rsp
	popq	%rbx
	popq	%r14
	popq	%r15
	popq	%rbp
	jmp	_linux_ptrace_peekuser          ## TAILCALL
LBB0_14:
	movq	_PT_KILL@GOTPCREL(%rip), %rcx
	jmp	LBB0_7
LBB0_25:
	movl	4(%rbx), %edx
	movq	%r15, %rdi
	movq	%r14, %rsi
	addq	$8, %rsp
	popq	%rbx
	popq	%r14
	popq	%r15
	popq	%rbp
	jmp	_linux_ptrace_getsiginfo        ## TAILCALL
LBB0_26:
	movl	4(%rbx), %ecx
	movq	%r15, %rdi
	movq	%r14, %rsi
	movq	%rax, %rdx
	addq	$8, %rsp
	popq	%rbx
	popq	%r14
	popq	%r15
	popq	%rbp
	jmp	_linux_ptrace_getregset         ## TAILCALL
LBB0_17:
	movslq	4(%rbx), %rdx
	movq	%r15, %rdi
	movq	%r14, %rsi
	addq	$8, %rsp
	popq	%rbx
	popq	%r14
	popq	%r15
	popq	%rbp
	jmp	_linux_ptrace_getregs           ## TAILCALL
LBB0_20:
	movl	4(%rbx), %edi
	leaq	-28(%rbp), %rsi
	callq	_map_signum
	testl	%eax, %eax
	jne	LBB0_29
## %bb.21:
	movq	_PT_DETACH@GOTPCREL(%rip), %rax
	jmp	LBB0_13
LBB0_11:
	movl	4(%rbx), %edi
	leaq	-28(%rbp), %rsi
	callq	_map_signum
	testl	%eax, %eax
	jne	LBB0_29
## %bb.12:
	movq	_PT_CONTINUE@GOTPCREL(%rip), %rax
LBB0_13:
	movl	(%rax), %esi
	movl	-28(%rbp), %r8d
	movl	$1, %ecx
	movq	%r15, %rdi
	movq	%r14, %rdx
	callq	_kern_ptrace
LBB0_29:
	addq	$8, %rsp
	popq	%rbx
	popq	%r14
	popq	%r15
	popq	%rbp
	retq
LBB0_19:
	movq	_PT_ATTACH@GOTPCREL(%rip), %rcx
LBB0_7:
	movl	(%rcx), %esi
	movl	4(%rbx), %r8d
	movq	%r15, %rdi
	movq	%r14, %rdx
	movq	%rax, %rcx
LBB0_8:
	addq	$8, %rsp
	popq	%rbx
	popq	%r14
	popq	%r15
	popq	%rbp
	jmp	_kern_ptrace                    ## TAILCALL
	.cfi_endproc
	.p2align	2, 0x90
	.data_region jt32
.set L0_0_set_2, LBB0_2-LJTI0_0
.set L0_0_set_22, LBB0_22-LJTI0_0
.set L0_0_set_15, LBB0_15-LJTI0_0
.set L0_0_set_18, LBB0_18-LJTI0_0
.set L0_0_set_24, LBB0_24-LJTI0_0
.set L0_0_set_27, LBB0_27-LJTI0_0
.set L0_0_set_10, LBB0_10-LJTI0_0
.set L0_0_set_6, LBB0_6-LJTI0_0
.set L0_0_set_9, LBB0_9-LJTI0_0
.set L0_0_set_5, LBB0_5-LJTI0_0
.set L0_0_set_3, LBB0_3-LJTI0_0
.set L0_0_set_14, LBB0_14-LJTI0_0
.set L0_0_set_25, LBB0_25-LJTI0_0
.set L0_0_set_26, LBB0_26-LJTI0_0
.set L0_0_set_17, LBB0_17-LJTI0_0
.set L0_0_set_20, LBB0_20-LJTI0_0
.set L0_0_set_11, LBB0_11-LJTI0_0
.set L0_0_set_19, LBB0_19-LJTI0_0
LJTI0_0:
	.long	L0_0_set_2
	.long	L0_0_set_22
	.long	L0_0_set_15
	.long	L0_0_set_18
	.long	L0_0_set_24
	.long	L0_0_set_27
	.long	L0_0_set_10
	.long	L0_0_set_6
	.long	L0_0_set_9
	.long	L0_0_set_5
	.long	L0_0_set_3
	.long	L0_0_set_3
	.long	L0_0_set_14
	.long	L0_0_set_25
	.long	L0_0_set_26
	.long	L0_0_set_17
	.long	L0_0_set_20
	.long	L0_0_set_11
	.long	L0_0_set_19
	.end_data_region
                                        ## -- End function
	.comm	_PT_TRACE_ME,4,2                ## @PT_TRACE_ME
	.comm	_PT_WRITE_I,4,2                 ## @PT_WRITE_I
	.comm	_PT_WRITE_D,4,2                 ## @PT_WRITE_D
	.comm	_PT_CONTINUE,4,2                ## @PT_CONTINUE
	.comm	_PT_KILL,4,2                    ## @PT_KILL
	.comm	_PT_STEP,4,2                    ## @PT_STEP
	.comm	_PT_ATTACH,4,2                  ## @PT_ATTACH
	.comm	_PT_DETACH,4,2                  ## @PT_DETACH
	.comm	_PT_SYSCALL,4,2                 ## @PT_SYSCALL
	.section	__TEXT,__cstring,cstring_literals
L_.str:                                 ## @.str
	.asciz	"ptrace(%ld, ...) not implemented; returning EINVAL"

	.comm	_EINVAL,4,2                     ## @EINVAL
.subsections_via_symbols

	.section	__TEXT,__text,regular,pure_instructions
	.build_version macos, 13, 0	sdk_version 13, 3
	.globl	_linux_ptrace                   ; -- Begin function linux_ptrace
	.p2align	2
_linux_ptrace:                          ; @linux_ptrace
	.cfi_startproc
; %bb.0:
	sub	sp, sp, #64
	.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
	mov	x20, x0
	ldr	w2, [x1]
	sub	w9, w2, #128
	cmp	w9, #18
	b.hi	LBB0_4
; %bb.1:
	mov	x21, x1
	ldp	x8, x19, [x1, #8]
Lloh0:
	adrp	x10, lJTI0_0@PAGE
Lloh1:
	add	x10, x10, lJTI0_0@PAGEOFF
	adr	x11, LBB0_2
	ldrb	w12, [x10, x9]
	add	x11, x11, x12, lsl #2
	br	x11
LBB0_2:
	ldrsw	x3, [x21, #4]
	mov	x0, x20
	mov	x1, x19
	mov	x2, x8
	bl	_linux_ptrace_peek
	cbnz	w0, LBB0_26
; %bb.3:
	ldr	x8, [x21, #8]
	add	x2, x8, #4
	ldrsw	x8, [x21, #4]
	add	x3, x8, #4
	mov	x0, x20
	mov	x1, x19
	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
	add	sp, sp, #64
	b	_linux_ptrace_peek
LBB0_4:
Lloh2:
	adrp	x1, l_.str@PAGE
Lloh3:
	add	x1, x1, l_.str@PAGEOFF
	mov	x0, x20
	bl	_linux_msg
Lloh4:
	adrp	x8, _EINVAL@GOTPAGE
Lloh5:
	ldr	x8, [x8, _EINVAL@GOTPAGEOFF]
Lloh6:
	ldr	w0, [x8]
	b	LBB0_26
LBB0_5:
Lloh7:
	adrp	x8, _PT_TRACE_ME@GOTPAGE
Lloh8:
	ldr	x8, [x8, _PT_TRACE_ME@GOTPAGEOFF]
Lloh9:
	ldr	w1, [x8]
	mov	x0, x20
	mov	x2, #0
	mov	x3, #0
	mov	w4, #0
	b	LBB0_29
LBB0_6:
	ldr	w0, [x21, #4]
	add	x1, sp, #12
	bl	_map_signum
	cbnz	w0, LBB0_26
; %bb.7:
Lloh10:
	adrp	x8, _PT_SYSCALL@GOTPAGE
Lloh11:
	ldr	x8, [x8, _PT_SYSCALL@GOTPAGEOFF]
	b	LBB0_25
LBB0_8:
	ldr	w0, [x21, #4]
	add	x1, sp, #12
	bl	_map_signum
	cbnz	w0, LBB0_26
; %bb.9:
Lloh12:
	adrp	x8, _PT_STEP@GOTPAGE
Lloh13:
	ldr	x8, [x8, _PT_STEP@GOTPAGEOFF]
	b	LBB0_25
LBB0_10:
	ldrsw	x2, [x21, #4]
	mov	x0, x20
	mov	x1, x19
	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
	add	sp, sp, #64
	b	_linux_ptrace_setregs
LBB0_11:
	ldr	w2, [x21, #4]
	mov	x0, x20
	mov	x1, x19
	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
	add	sp, sp, #64
	b	_linux_ptrace_setoptions
LBB0_12:
	ldr	w3, [x21, #4]
	mov	x0, x20
	mov	x1, x19
	mov	x2, x8
	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
	add	sp, sp, #64
	b	_linux_ptrace_seize
LBB0_13:
	ldrsw	x3, [x21, #4]
	mov	x0, x20
	mov	x1, x19
	mov	x2, x8
	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
	add	sp, sp, #64
	b	_linux_ptrace_pokeuser
LBB0_14:
Lloh14:
	adrp	x9, _PT_WRITE_I@GOTPAGE
Lloh15:
	ldr	x9, [x9, _PT_WRITE_I@GOTPAGEOFF]
	b	LBB0_28
LBB0_15:
Lloh16:
	adrp	x9, _PT_WRITE_D@GOTPAGE
Lloh17:
	ldr	x9, [x9, _PT_WRITE_D@GOTPAGEOFF]
	b	LBB0_28
LBB0_16:
	ldrsw	x3, [x21, #4]
	mov	x0, x20
	mov	x1, x19
	mov	x2, x8
	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
	add	sp, sp, #64
	b	_linux_ptrace_peekuser
LBB0_17:
Lloh18:
	adrp	x9, _PT_KILL@GOTPAGE
Lloh19:
	ldr	x9, [x9, _PT_KILL@GOTPAGEOFF]
	b	LBB0_28
LBB0_18:
	ldr	w2, [x21, #4]
	mov	x0, x20
	mov	x1, x19
	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
	add	sp, sp, #64
	b	_linux_ptrace_getsiginfo
LBB0_19:
	ldr	w3, [x21, #4]
	mov	x0, x20
	mov	x1, x19
	mov	x2, x8
	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
	add	sp, sp, #64
	b	_linux_ptrace_getregset
LBB0_20:
	ldrsw	x2, [x21, #4]
	mov	x0, x20
	mov	x1, x19
	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
	add	sp, sp, #64
	b	_linux_ptrace_getregs
LBB0_21:
	ldr	w0, [x21, #4]
	add	x1, sp, #12
	bl	_map_signum
	cbnz	w0, LBB0_26
; %bb.22:
Lloh20:
	adrp	x8, _PT_DETACH@GOTPAGE
Lloh21:
	ldr	x8, [x8, _PT_DETACH@GOTPAGEOFF]
	b	LBB0_25
LBB0_23:
	ldr	w0, [x21, #4]
	add	x1, sp, #12
	bl	_map_signum
	cbnz	w0, LBB0_26
; %bb.24:
Lloh22:
	adrp	x8, _PT_CONTINUE@GOTPAGE
Lloh23:
	ldr	x8, [x8, _PT_CONTINUE@GOTPAGEOFF]
LBB0_25:
	ldr	w1, [x8]
	ldr	w4, [sp, #12]
	mov	x0, x20
	mov	x2, x19
	mov	w3, #1
	bl	_kern_ptrace
LBB0_26:
	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
	add	sp, sp, #64
	ret
LBB0_27:
Lloh24:
	adrp	x9, _PT_ATTACH@GOTPAGE
Lloh25:
	ldr	x9, [x9, _PT_ATTACH@GOTPAGEOFF]
LBB0_28:
	ldr	w1, [x9]
	ldr	w4, [x21, #4]
	mov	x0, x20
	mov	x2, x19
	mov	x3, x8
LBB0_29:
	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
	add	sp, sp, #64
	b	_kern_ptrace
	.loh AdrpAdd	Lloh0, Lloh1
	.loh AdrpLdrGotLdr	Lloh4, Lloh5, Lloh6
	.loh AdrpAdd	Lloh2, Lloh3
	.loh AdrpLdrGotLdr	Lloh7, Lloh8, Lloh9
	.loh AdrpLdrGot	Lloh10, Lloh11
	.loh AdrpLdrGot	Lloh12, Lloh13
	.loh AdrpLdrGot	Lloh14, Lloh15
	.loh AdrpLdrGot	Lloh16, Lloh17
	.loh AdrpLdrGot	Lloh18, Lloh19
	.loh AdrpLdrGot	Lloh20, Lloh21
	.loh AdrpLdrGot	Lloh22, Lloh23
	.loh AdrpLdrGot	Lloh24, Lloh25
	.cfi_endproc
	.section	__TEXT,__const
lJTI0_0:
	.byte	(LBB0_5-LBB0_2)>>2
	.byte	(LBB0_6-LBB0_2)>>2
	.byte	(LBB0_8-LBB0_2)>>2
	.byte	(LBB0_10-LBB0_2)>>2
	.byte	(LBB0_11-LBB0_2)>>2
	.byte	(LBB0_12-LBB0_2)>>2
	.byte	(LBB0_13-LBB0_2)>>2
	.byte	(LBB0_14-LBB0_2)>>2
	.byte	(LBB0_15-LBB0_2)>>2
	.byte	(LBB0_16-LBB0_2)>>2
	.byte	(LBB0_2-LBB0_2)>>2
	.byte	(LBB0_2-LBB0_2)>>2
	.byte	(LBB0_17-LBB0_2)>>2
	.byte	(LBB0_18-LBB0_2)>>2
	.byte	(LBB0_19-LBB0_2)>>2
	.byte	(LBB0_20-LBB0_2)>>2
	.byte	(LBB0_21-LBB0_2)>>2
	.byte	(LBB0_23-LBB0_2)>>2
	.byte	(LBB0_27-LBB0_2)>>2
                                        ; -- End function
	.comm	_PT_TRACE_ME,4,2                ; @PT_TRACE_ME
	.comm	_PT_WRITE_I,4,2                 ; @PT_WRITE_I
	.comm	_PT_WRITE_D,4,2                 ; @PT_WRITE_D
	.comm	_PT_CONTINUE,4,2                ; @PT_CONTINUE
	.comm	_PT_KILL,4,2                    ; @PT_KILL
	.comm	_PT_STEP,4,2                    ; @PT_STEP
	.comm	_PT_ATTACH,4,2                  ; @PT_ATTACH
	.comm	_PT_DETACH,4,2                  ; @PT_DETACH
	.comm	_PT_SYSCALL,4,2                 ; @PT_SYSCALL
	.section	__TEXT,__cstring,cstring_literals
l_.str:                                 ; @.str
	.asciz	"ptrace(%ld, ...) not implemented; returning EINVAL"

	.comm	_EINVAL,4,2                     ; @EINVAL
.subsections_via_symbols
