	.section	__TEXT,__text,regular,pure_instructions
	.build_version macos, 13, 0	sdk_version 13, 3
	.p2align	4, 0x90                         ## -- Begin function do_io_test
_do_io_test:                            ## @do_io_test
	.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	$24, %rsp
	.cfi_offset %rbx, -56
	.cfi_offset %r12, -48
	.cfi_offset %r13, -40
	.cfi_offset %r14, -32
	.cfi_offset %r15, -24
	movq	%r8, -56(%rbp)                  ## 8-byte Spill
	movq	%rcx, -64(%rbp)                 ## 8-byte Spill
	movl	%edx, %r13d
	movl	%esi, -44(%rbp)                 ## 4-byte Spill
	movq	%rdi, %r14
	movl	(%rdi), %eax
	xorl	%r12d, %r12d
	movl	$0, %r15d
	cmpl	$142, %eax
	je	LBB0_4
## %bb.1:
	cmpl	$143, %eax
	jne	LBB0_3
## %bb.2:
	xorl	%eax, %eax
	callq	_usb_ts_rand_noise
	movl	%eax, %r15d
	andl	$1, %r15d
LBB0_4:
	cmpl	$141, 4(%r14)
	jne	LBB0_6
LBB0_5:
	xorl	%eax, %eax
	callq	_usb_ts_rand_noise
	movl	%eax, %r12d
LBB0_6:
	movl	$-144, %eax
	addl	8(%r14), %eax
	cmpl	$3, %eax
	ja	LBB0_12
## %bb.7:
	movl	$10000, %edi                    ## imm = 0x2710
	leaq	LJTI0_0(%rip), %rcx
	movslq	(%rcx,%rax,4), %rax
	addq	%rcx, %rax
	jmpq	*%rax
LBB0_8:
	xorl	%eax, %eax
	callq	_usb_ts_rand_noise
	movl	%eax, %edi
	movl	%eax, %eax
	movl	$3518437209, %ecx               ## imm = 0xD1B71759
	imulq	%rax, %rcx
	shrq	$45, %rcx
	imull	$10000, %ecx, %eax              ## imm = 0x2710
	subl	%eax, %edi
	jmp	LBB0_11
LBB0_3:
	movl	$1, %r15d
	cmpl	$141, 4(%r14)
	je	LBB0_5
	jmp	LBB0_6
LBB0_9:
	xorl	%eax, %eax
	callq	_usb_ts_rand_noise
	movl	%eax, %edi
	shrl	$5, %eax
	imulq	$175921861, %rax, %rax          ## imm = 0xA7C5AC5
	shrq	$39, %rax
	imull	$100000, %eax, %eax             ## imm = 0x186A0
	subl	%eax, %edi
	jmp	LBB0_11
LBB0_10:
	movl	$100000, %edi                   ## imm = 0x186A0
LBB0_11:
	callq	_usleep
LBB0_12:
	movl	12(%r14), %eax
	movl	$1, %ecx
	addl	$-128, %eax
	cmpl	$12, %eax
	ja	LBB0_27
## %bb.13:
	leaq	LJTI0_1(%rip), %rdx
	movslq	(%rdx,%rax,4), %rax
	addq	%rdx, %rax
	jmpq	*%rax
LBB0_25:
	xorl	%eax, %eax
	callq	_usb_ts_rand_noise
	jmp	LBB0_26
LBB0_14:
	movq	_xfer_current_id@GOTPCREL(%rip), %rax
	movzwl	(%rax), %eax
LBB0_26:
	movzwl	%ax, %eax
	testl	%eax, %eax
	movl	$1, %ecx
	cmovnel	%eax, %ecx
	jmp	LBB0_27
LBB0_17:
	movl	$8, %ecx
	jmp	LBB0_27
LBB0_20:
	movl	$64, %ecx
	jmp	LBB0_27
LBB0_23:
	movl	$512, %ecx                      ## imm = 0x200
	jmp	LBB0_27
LBB0_16:
	movl	$4, %ecx
	jmp	LBB0_27
LBB0_19:
	movl	$32, %ecx
	jmp	LBB0_27
LBB0_15:
	movl	$2, %ecx
	jmp	LBB0_27
LBB0_22:
	movl	$256, %ecx                      ## imm = 0x100
	jmp	LBB0_27
LBB0_18:
	movl	$16, %ecx
	jmp	LBB0_27
LBB0_21:
	movl	$128, %ecx
	jmp	LBB0_27
LBB0_24:
	movl	$1024, %ecx                     ## imm = 0x400
LBB0_27:
	movl	%r12d, %eax
	xorl	%edx, %edx
	divl	%r13d
	movl	%edx, %ebx
	subl	%edx, %r13d
	cmpl	%r13d, %ecx
	cmovbl	%ecx, %r13d
	movq	_block_size@GOTPCREL(%rip), %r12
	movl	(%r12), %eax
	movl	%eax, %esi
	imull	%r13d, %esi
	imull	%edx, %eax
	testl	%r15d, %r15d
	je	LBB0_32
## %bb.28:
	movq	-64(%rbp), %r15                 ## 8-byte Reload
	leaq	(%r15,%rax,4), %rdx
	movl	%ebx, %edi
	movl	-44(%rbp), %ecx                 ## 4-byte Reload
	callq	_do_read_10
	testl	%eax, %eax
	jne	LBB0_31
## %bb.29:
	movl	(%r12), %edx
	imull	%edx, %ebx
	leaq	(%r15,%rbx,4), %rdi
	movq	-56(%rbp), %rax                 ## 8-byte Reload
	leaq	(%rax,%rbx,4), %rsi
	imull	%r13d, %edx
	callq	_bcmp
	testq	%rax, %rax
	je	LBB0_31
## %bb.30:
	leaq	L_str.2(%rip), %rdi
	callq	_puts
	movq	_stats@GOTPCREL(%rip), %rax
	incq	(%rax)
LBB0_31:
	imull	(%r12), %r13d
	movq	_stats@GOTPCREL(%rip), %rax
	addl	%r13d, 8(%rax)
	jmp	LBB0_33
LBB0_32:
	movq	-56(%rbp), %rcx                 ## 8-byte Reload
	leaq	(%rcx,%rax,4), %rdx
	movl	%ebx, %edi
	movl	-44(%rbp), %ecx                 ## 4-byte Reload
	callq	_do_write_10
	imull	(%r12), %r13d
	movq	_stats@GOTPCREL(%rip), %rax
	addl	%r13d, 12(%rax)
LBB0_33:
	movq	_stats@GOTPCREL(%rip), %rax
	movq	(%rax), %rcx
	addq	16(%rax), %rcx
	addq	24(%rax), %rcx
	cmpq	16(%r14), %rcx
	jl	LBB0_35
## %bb.34:
	leaq	L_str(%rip), %rdi
	callq	_puts
	movl	$1, 24(%r14)
LBB0_35:
	addq	$24, %rsp
	popq	%rbx
	popq	%r12
	popq	%r13
	popq	%r14
	popq	%r15
	popq	%rbp
	retq
	.cfi_endproc
	.p2align	2, 0x90
	.data_region jt32
.set L0_0_set_8, LBB0_8-LJTI0_0
.set L0_0_set_9, LBB0_9-LJTI0_0
.set L0_0_set_11, LBB0_11-LJTI0_0
.set L0_0_set_10, LBB0_10-LJTI0_0
LJTI0_0:
	.long	L0_0_set_8
	.long	L0_0_set_9
	.long	L0_0_set_11
	.long	L0_0_set_10
.set L0_1_set_25, LBB0_25-LJTI0_1
.set L0_1_set_14, LBB0_14-LJTI0_1
.set L0_1_set_17, LBB0_17-LJTI0_1
.set L0_1_set_20, LBB0_20-LJTI0_1
.set L0_1_set_23, LBB0_23-LJTI0_1
.set L0_1_set_16, LBB0_16-LJTI0_1
.set L0_1_set_19, LBB0_19-LJTI0_1
.set L0_1_set_15, LBB0_15-LJTI0_1
.set L0_1_set_22, LBB0_22-LJTI0_1
.set L0_1_set_27, LBB0_27-LJTI0_1
.set L0_1_set_18, LBB0_18-LJTI0_1
.set L0_1_set_21, LBB0_21-LJTI0_1
.set L0_1_set_24, LBB0_24-LJTI0_1
LJTI0_1:
	.long	L0_1_set_25
	.long	L0_1_set_14
	.long	L0_1_set_17
	.long	L0_1_set_20
	.long	L0_1_set_23
	.long	L0_1_set_16
	.long	L0_1_set_19
	.long	L0_1_set_15
	.long	L0_1_set_22
	.long	L0_1_set_27
	.long	L0_1_set_18
	.long	L0_1_set_21
	.long	L0_1_set_24
	.end_data_region
                                        ## -- End function
	.comm	_xfer_current_id,4,2            ## @xfer_current_id
	.comm	_block_size,4,2                 ## @block_size
	.comm	_stats,32,3                     ## @stats
	.section	__TEXT,__cstring,cstring_literals
L_str:                                  ## @str
	.asciz	"Maximum number of errors exceeded"

L_str.2:                                ## @str.2
	.asciz	"ERROR: Data comparison failure"

	.no_dead_strip	_do_io_test
.subsections_via_symbols

	.section	__TEXT,__text,regular,pure_instructions
	.build_version macos, 13, 0	sdk_version 13, 3
	.p2align	2                               ; -- Begin function do_io_test
_do_io_test:                            ; @do_io_test
	.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
	mov	x20, x4
	mov	x21, x3
	mov	x23, x2
	mov	x22, x1
	mov	x19, x0
	ldr	w8, [x0]
	cmp	w8, #142
	b.eq	LBB0_3
; %bb.1:
	cmp	w8, #143
	b.ne	LBB0_4
; %bb.2:
	bl	_usb_ts_rand_noise
	and	w25, w0, #0x1
	b	LBB0_5
LBB0_3:
	mov	w25, #0
	b	LBB0_5
LBB0_4:
	mov	w25, #1
LBB0_5:
	ldr	w8, [x19, #4]
	cmp	w8, #141
	b.ne	LBB0_7
; %bb.6:
	bl	_usb_ts_rand_noise
	mov	x24, x0
	b	LBB0_8
LBB0_7:
	mov	w24, #0
LBB0_8:
	ldr	w8, [x19, #8]
	sub	w8, w8, #144
	cmp	w8, #3
	b.hi	LBB0_14
; %bb.9:
	mov	w0, #10000
Lloh0:
	adrp	x9, lJTI0_0@PAGE
Lloh1:
	add	x9, x9, lJTI0_0@PAGEOFF
	adr	x10, LBB0_10
	ldrb	w11, [x9, x8]
	add	x10, x10, x11, lsl #2
	br	x10
LBB0_10:
	bl	_usb_ts_rand_noise
	mov	w8, #5977
	movk	w8, #53687, lsl #16
	umull	x8, w0, w8
	lsr	x8, x8, #45
	mov	w9, #10000
	msub	w0, w8, w9, w0
	b	LBB0_13
LBB0_11:
	bl	_usb_ts_rand_noise
	lsr	w8, w0, #5
	mov	w9, #23237
	movk	w9, #2684, lsl #16
	umull	x8, w8, w9
	lsr	x8, x8, #39
	mov	w9, #34464
	movk	w9, #1, lsl #16
	msub	w0, w8, w9, w0
	b	LBB0_13
LBB0_12:
	mov	w0, #34464
	movk	w0, #1, lsl #16
LBB0_13:
	bl	_usleep
LBB0_14:
	ldr	w9, [x19, #12]
	mov	w8, #1
	sub	w9, w9, #128
	cmp	w9, #12
	b.hi	LBB0_29
; %bb.15:
Lloh2:
	adrp	x10, lJTI0_1@PAGE
Lloh3:
	add	x10, x10, lJTI0_1@PAGEOFF
	adr	x11, LBB0_16
	ldrb	w12, [x10, x9]
	add	x11, x11, x12, lsl #2
	br	x11
LBB0_16:
	bl	_usb_ts_rand_noise
	b	LBB0_18
LBB0_17:
Lloh4:
	adrp	x8, _xfer_current_id@GOTPAGE
Lloh5:
	ldr	x8, [x8, _xfer_current_id@GOTPAGEOFF]
	ldrh	w0, [x8]
LBB0_18:
	ands	w8, w0, #0xffff
	csinc	w8, w8, wzr, ne
	b	LBB0_29
LBB0_19:
	mov	w8, #8
	b	LBB0_29
LBB0_20:
	mov	w8, #64
	b	LBB0_29
LBB0_21:
	mov	w8, #512
	b	LBB0_29
LBB0_22:
	mov	w8, #4
	b	LBB0_29
LBB0_23:
	mov	w8, #32
	b	LBB0_29
LBB0_24:
	mov	w8, #2
	b	LBB0_29
LBB0_25:
	mov	w8, #256
	b	LBB0_29
LBB0_26:
	mov	w8, #16
	b	LBB0_29
LBB0_27:
	mov	w8, #128
	b	LBB0_29
LBB0_28:
	mov	w8, #1024
LBB0_29:
	udiv	w9, w24, w23
	msub	w24, w9, w23, w24
	sub	w9, w23, w24
	cmp	w8, w9
Lloh6:
	adrp	x27, _block_size@GOTPAGE
Lloh7:
	ldr	x27, [x27, _block_size@GOTPAGEOFF]
	csel	w26, w8, w9, lo
	ldr	w8, [x27]
	mul	w1, w8, w26
	mul	w8, w8, w24
Lloh8:
	adrp	x23, _stats@GOTPAGE
Lloh9:
	ldr	x23, [x23, _stats@GOTPAGEOFF]
	cbz	w25, LBB0_34
; %bb.30:
	add	x2, x21, x8, lsl #2
	mov	x0, x24
	mov	x3, x22
	bl	_do_read_10
	cbnz	w0, LBB0_33
; %bb.31:
	ldr	w8, [x27]
	mul	w9, w8, w24
	lsl	x9, x9, #2
	add	x0, x21, x9
	add	x1, x20, x9
	mul	w2, w8, w26
	bl	_bcmp
	cbz	x0, LBB0_33
; %bb.32:
Lloh10:
	adrp	x0, l_str.2@PAGE
Lloh11:
	add	x0, x0, l_str.2@PAGEOFF
	bl	_puts
	ldr	x8, [x23]
	add	x8, x8, #1
	str	x8, [x23]
LBB0_33:
	ldr	w8, [x27]
	ldr	w9, [x23, #8]
	madd	w8, w8, w26, w9
	str	w8, [x23, #8]
	b	LBB0_35
LBB0_34:
	add	x2, x20, x8, lsl #2
	mov	x0, x24
	mov	x3, x22
	bl	_do_write_10
	ldr	w8, [x27]
	ldr	w9, [x23, #12]
	madd	w8, w8, w26, w9
	str	w8, [x23, #12]
LBB0_35:
	ldr	x8, [x23]
	ldp	x9, x10, [x23, #16]
	add	x8, x8, x9
	add	x8, x8, x10
	ldr	x9, [x19, #16]
	cmp	x8, x9
	b.lt	LBB0_37
; %bb.36:
Lloh12:
	adrp	x0, l_str@PAGE
Lloh13:
	add	x0, x0, l_str@PAGEOFF
	bl	_puts
	mov	w8, #1
	str	w8, [x19, #24]
LBB0_37:
	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
	.loh AdrpAdd	Lloh0, Lloh1
	.loh AdrpAdd	Lloh2, Lloh3
	.loh AdrpLdrGot	Lloh4, Lloh5
	.loh AdrpLdrGot	Lloh8, Lloh9
	.loh AdrpLdrGot	Lloh6, Lloh7
	.loh AdrpAdd	Lloh10, Lloh11
	.loh AdrpAdd	Lloh12, Lloh13
	.cfi_endproc
	.section	__TEXT,__const
lJTI0_0:
	.byte	(LBB0_10-LBB0_10)>>2
	.byte	(LBB0_11-LBB0_10)>>2
	.byte	(LBB0_13-LBB0_10)>>2
	.byte	(LBB0_12-LBB0_10)>>2
lJTI0_1:
	.byte	(LBB0_16-LBB0_16)>>2
	.byte	(LBB0_17-LBB0_16)>>2
	.byte	(LBB0_19-LBB0_16)>>2
	.byte	(LBB0_20-LBB0_16)>>2
	.byte	(LBB0_21-LBB0_16)>>2
	.byte	(LBB0_22-LBB0_16)>>2
	.byte	(LBB0_23-LBB0_16)>>2
	.byte	(LBB0_24-LBB0_16)>>2
	.byte	(LBB0_25-LBB0_16)>>2
	.byte	(LBB0_29-LBB0_16)>>2
	.byte	(LBB0_26-LBB0_16)>>2
	.byte	(LBB0_27-LBB0_16)>>2
	.byte	(LBB0_28-LBB0_16)>>2
                                        ; -- End function
	.comm	_xfer_current_id,4,2            ; @xfer_current_id
	.comm	_block_size,4,2                 ; @block_size
	.comm	_stats,32,3                     ; @stats
	.section	__TEXT,__cstring,cstring_literals
l_str:                                  ; @str
	.asciz	"Maximum number of errors exceeded"

l_str.2:                                ; @str.2
	.asciz	"ERROR: Data comparison failure"

	.no_dead_strip	_do_io_test
.subsections_via_symbols
