	.section	__TEXT,__text,regular,pure_instructions
	.build_version macos, 13, 0	sdk_version 13, 3
	.globl	_json_events                    ## -- Begin function json_events
	.p2align	4, 0x90
_json_events:                           ## @json_events
	.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	$376, %rsp                      ## imm = 0x178
	.cfi_offset %rbx, -56
	.cfi_offset %r12, -48
	.cfi_offset %r13, -40
	.cfi_offset %r14, -32
	.cfi_offset %r15, -24
	movq	%rdx, -392(%rbp)                ## 8-byte Spill
	movq	%rsi, -384(%rbp)                ## 8-byte Spill
	movq	___stack_chk_guard@GOTPCREL(%rip), %rax
	movq	(%rax), %rax
	movq	%rax, -48(%rbp)
	testq	%rdi, %rdi
	je	LBB0_1
## %bb.3:
	movq	%rdi, %r14
	leaq	-184(%rbp), %rsi
	leaq	-408(%rbp), %rdx
	leaq	-356(%rbp), %rcx
	callq	_parse_json
	testq	%rax, %rax
	je	LBB0_4
## %bb.5:
	movq	%rax, %r13
	movq	(%rax), %rax
	movq	_JSMN_ARRAY@GOTPCREL(%rip), %rcx
	xorl	%edi, %edi
	cmpq	(%rcx), %rax
	sete	%dil
	leaq	L_.str(%rip), %rdx
	movq	%r13, %rsi
	callq	_EXPECT
	leaq	16(%r13), %rbx
	cmpl	$0, 8(%r13)
	jle	LBB0_6
## %bb.7:
	movq	%r14, -376(%rbp)                ## 8-byte Spill
	xorl	%r12d, %r12d
	movq	%r13, -328(%rbp)                ## 8-byte Spill
	.p2align	4, 0x90
LBB0_8:                                 ## =>This Loop Header: Depth=1
                                        ##     Child Loop BB0_11 Depth 2
                                        ##       Child Loop BB0_47 Depth 3
                                        ##       Child Loop BB0_62 Depth 3
                                        ##       Child Loop BB0_66 Depth 3
	movq	$0, -240(%rbp)
	movq	$0, -200(%rbp)
	movq	$0, -272(%rbp)
	movq	$0, -232(%rbp)
	movq	$0, -256(%rbp)
	movq	$0, -192(%rbp)
	movq	$0, -320(%rbp)
	movq	$0, -312(%rbp)
	movq	$0, -304(%rbp)
	movq	$0, -264(%rbp)
	movq	$0, -296(%rbp)
	movq	$0, -288(%rbp)
	movq	$0, -280(%rbp)
	leaq	16(%rbx), %rax
	movq	%rax, -352(%rbp)                ## 8-byte Spill
	movq	(%rbx), %rax
	xorl	%edi, %edi
	movq	_JSMN_OBJECT@GOTPCREL(%rip), %rcx
	cmpq	(%rcx), %rax
	sete	%dil
	movq	%rbx, %rsi
	leaq	L_.str.1(%rip), %rdx
	callq	_EXPECT
	cmpl	$0, 8(%rbx)
	jle	LBB0_9
## %bb.10:                              ##   in Loop: Header=BB0_8 Depth=1
	movq	%r12, -336(%rbp)                ## 8-byte Spill
	xorl	%r14d, %r14d
	xorl	%eax, %eax
	movq	%rax, -368(%rbp)                ## 8-byte Spill
	xorl	%eax, %eax
	movq	%rax, -344(%rbp)                ## 8-byte Spill
	xorl	%eax, %eax
	movq	%rax, -216(%rbp)                ## 8-byte Spill
	xorl	%eax, %eax
	movq	%rax, -248(%rbp)                ## 8-byte Spill
	movq	%rbx, -400(%rbp)                ## 8-byte Spill
	jmp	LBB0_11
	.p2align	4, 0x90
LBB0_9:                                 ##   in Loop: Header=BB0_8 Depth=1
	xorl	%r14d, %r14d
	xorl	%eax, %eax
	movq	%rax, -344(%rbp)                ## 8-byte Spill
	xorl	%eax, %eax
	movq	%rax, -216(%rbp)                ## 8-byte Spill
	xorl	%ecx, %ecx
	jmp	LBB0_75
LBB0_57:                                ##   in Loop: Header=BB0_11 Depth=2
	movq	%r12, %rsi
	leaq	L_.str.28(%rip), %rdx
	callq	_json_streq
	movq	-184(%rbp), %rdi
	testq	%rax, %rax
	je	LBB0_59
## %bb.58:                              ##   in Loop: Header=BB0_11 Depth=2
	leaq	-288(%rbp), %rsi
	leaq	L_.str.6(%rip), %rcx
	movq	%rcx, %rdx
	movq	%r15, %r8
	callq	_addfield
	.p2align	4, 0x90
LBB0_67:                                ##   in Loop: Header=BB0_11 Depth=2
	movq	-208(%rbp), %r14                ## 8-byte Reload
LBB0_68:                                ##   in Loop: Header=BB0_11 Depth=2
	addq	$2, %r14
	movq	-400(%rbp), %rbx                ## 8-byte Reload
	cmpl	%r14d, 8(%rbx)
	jle	LBB0_69
LBB0_11:                                ##   Parent Loop BB0_8 Depth=1
                                        ## =>  This Loop Header: Depth=2
                                        ##       Child Loop BB0_47 Depth 3
                                        ##       Child Loop BB0_62 Depth 3
                                        ##       Child Loop BB0_66 Depth 3
	movq	%r14, -208(%rbp)                ## 8-byte Spill
	movq	%r14, %rbx
	shlq	$4, %rbx
	movq	-352(%rbp), %r14                ## 8-byte Reload
	leaq	(%r14,%rbx), %r12
	movq	(%r14,%rbx), %rax
	xorl	%edi, %edi
	movq	_JSMN_STRING@GOTPCREL(%rip), %r13
	cmpq	(%r13), %rax
	sete	%dil
	movq	%r12, %rsi
	leaq	L_.str.2(%rip), %rdx
	callq	_EXPECT
	leaq	(%r14,%rbx), %r15
	addq	$16, %r15
	movq	16(%r14,%rbx), %rax
	xorl	%edi, %edi
	cmpq	(%r13), %rax
	sete	%dil
	movq	%r15, %rsi
	leaq	L_.str.3(%rip), %rdx
	callq	_EXPECT
	movq	-184(%rbp), %rdi
	movq	%r15, %rsi
	leaq	L_.str.4(%rip), %rdx
	callq	_json_streq
	movq	%rax, %r13
	xorl	%edx, %edx
	testq	%rax, %rax
	sete	%dl
	movq	-184(%rbp), %rdi
	movq	%r12, %rsi
	leaq	-240(%rbp), %rcx
	movq	%r15, %r8
	callq	_match_field
	testq	%rax, %rax
	jne	LBB0_67
## %bb.12:                              ##   in Loop: Header=BB0_11 Depth=2
	movq	-184(%rbp), %rdi
	movq	%r12, %rsi
	leaq	L_.str.5(%rip), %rdx
	callq	_json_streq
	testq	%rax, %rax
	movq	-208(%rbp), %r14                ## 8-byte Reload
	je	LBB0_15
## %bb.13:                              ##   in Loop: Header=BB0_11 Depth=2
	movq	$0, -224(%rbp)
	movq	-184(%rbp), %rdi
	leaq	-224(%rbp), %rsi
	leaq	L_.str.6(%rip), %rcx
	movq	%rcx, %rdx
	movq	%r15, %r8
	callq	_addfield
	movq	-224(%rbp), %rdi
	xorl	%esi, %esi
	xorl	%edx, %edx
	callq	_strtoul
	jmp	LBB0_14
LBB0_15:                                ##   in Loop: Header=BB0_11 Depth=2
	movq	-184(%rbp), %rdi
	movq	%r12, %rsi
	leaq	L_.str.7(%rip), %rdx
	callq	_json_streq
	testq	%rax, %rax
	je	LBB0_17
## %bb.16:                              ##   in Loop: Header=BB0_11 Depth=2
	movq	$0, -224(%rbp)
	movq	-184(%rbp), %rdi
	leaq	-224(%rbp), %rsi
	leaq	L_.str.6(%rip), %rcx
	movq	%rcx, %rdx
	movq	%r15, %r8
	callq	_addfield
	movq	-224(%rbp), %rdi
	xorl	%esi, %esi
	xorl	%edx, %edx
	callq	_strtoul
	shll	$21, %eax
LBB0_14:                                ##   in Loop: Header=BB0_11 Depth=2
	cltq
	orq	%rax, -248(%rbp)                ## 8-byte Folded Spill
	movq	-224(%rbp), %rdi
	callq	_free
	jmp	LBB0_68
LBB0_17:                                ##   in Loop: Header=BB0_11 Depth=2
	movq	-184(%rbp), %rdi
	movq	%r12, %rsi
	leaq	L_.str.8(%rip), %rdx
	callq	_json_streq
	movq	-184(%rbp), %rdi
	testq	%rax, %rax
	je	LBB0_21
## %bb.18:                              ##   in Loop: Header=BB0_11 Depth=2
	leaq	-272(%rbp), %rsi
LBB0_19:                                ##   in Loop: Header=BB0_11 Depth=2
	leaq	L_.str.6(%rip), %rcx
	movq	%rcx, %rdx
LBB0_20:                                ##   in Loop: Header=BB0_11 Depth=2
	movq	%r15, %r8
	callq	_addfield
	jmp	LBB0_68
LBB0_21:                                ##   in Loop: Header=BB0_11 Depth=2
	movq	%r12, %rsi
	leaq	L_.str.9(%rip), %rdx
	callq	_json_streq
	movq	-184(%rbp), %rdi
	testq	%rax, %rax
	je	LBB0_23
## %bb.22:                              ##   in Loop: Header=BB0_11 Depth=2
	leaq	-200(%rbp), %rsi
	leaq	L_.str.6(%rip), %rcx
	movq	%rcx, %rdx
	movq	%r15, %r8
	callq	_addfield
	movq	-200(%rbp), %rdi
	callq	_fixdesc
	jmp	LBB0_68
LBB0_23:                                ##   in Loop: Header=BB0_11 Depth=2
	movq	%r12, %rsi
	leaq	L_.str.10(%rip), %rdx
	callq	_json_streq
	movq	-184(%rbp), %rdi
	testq	%rax, %rax
	je	LBB0_25
## %bb.24:                              ##   in Loop: Header=BB0_11 Depth=2
	leaq	-232(%rbp), %rsi
	leaq	L_.str.6(%rip), %rcx
	movq	%rcx, %rdx
	movq	%r15, %r8
	callq	_addfield
	movq	-232(%rbp), %rdi
	callq	_fixdesc
	jmp	LBB0_68
LBB0_25:                                ##   in Loop: Header=BB0_11 Depth=2
	movq	%r12, %rsi
	leaq	L_.str.11(%rip), %rdx
	callq	_json_streq
	testq	%rax, %rax
	je	LBB0_28
## %bb.26:                              ##   in Loop: Header=BB0_11 Depth=2
	testq	%r13, %r13
	jne	LBB0_28
## %bb.27:                              ##   in Loop: Header=BB0_11 Depth=2
	movq	%r15, -368(%rbp)                ## 8-byte Spill
	jmp	LBB0_68
LBB0_28:                                ##   in Loop: Header=BB0_11 Depth=2
	movq	-184(%rbp), %rdi
	movq	%r12, %rsi
	leaq	L_.str.12(%rip), %rdx
	callq	_json_streq
	movq	-184(%rbp), %rdi
	testq	%rax, %rax
	je	LBB0_31
## %bb.29:                              ##   in Loop: Header=BB0_11 Depth=2
	testq	%r13, %r13
	jne	LBB0_31
## %bb.30:                              ##   in Loop: Header=BB0_11 Depth=2
	movq	%r15, %rsi
	callq	_lookup_msr
	movq	%rax, -216(%rbp)                ## 8-byte Spill
	jmp	LBB0_68
LBB0_31:                                ##   in Loop: Header=BB0_11 Depth=2
	movq	%r12, %rsi
	leaq	L_.str.13(%rip), %rdx
	callq	_json_streq
	testq	%rax, %rax
	je	LBB0_33
## %bb.32:                              ##   in Loop: Header=BB0_11 Depth=2
	movq	%r15, -344(%rbp)                ## 8-byte Spill
	jmp	LBB0_68
LBB0_33:                                ##   in Loop: Header=BB0_11 Depth=2
	movq	-184(%rbp), %rdi
	movq	%r12, %rsi
	leaq	L_.str.14(%rip), %rdx
	callq	_json_streq
	testq	%rax, %rax
	je	LBB0_36
## %bb.34:                              ##   in Loop: Header=BB0_11 Depth=2
	movq	-184(%rbp), %rdi
	movq	%r15, %rsi
	leaq	L_.str.15(%rip), %rdx
	callq	_json_streq
	testq	%rax, %rax
	je	LBB0_35
LBB0_36:                                ##   in Loop: Header=BB0_11 Depth=2
	movq	-184(%rbp), %rdi
	movq	%r12, %rsi
	leaq	L_.str.18(%rip), %rdx
	callq	_json_streq
	movq	-184(%rbp), %rdi
	testq	%rax, %rax
	je	LBB0_40
## %bb.37:                              ##   in Loop: Header=BB0_11 Depth=2
	testq	%r13, %r13
	jne	LBB0_40
## %bb.38:                              ##   in Loop: Header=BB0_11 Depth=2
	leaq	-256(%rbp), %rsi
	leaq	L_.str.16(%rip), %rdx
	leaq	L_.str.19(%rip), %rcx
	jmp	LBB0_39
LBB0_40:                                ##   in Loop: Header=BB0_11 Depth=2
	movq	%r12, %rsi
	leaq	L_.str.20(%rip), %rdx
	callq	_json_streq
	testq	%rax, %rax
	je	LBB0_49
## %bb.41:                              ##   in Loop: Header=BB0_11 Depth=2
	movq	_unit_to_pmu@GOTPCREL(%rip), %rax
	movl	(%rax), %edi
	movq	-184(%rbp), %rsi
	movq	%r15, %rdx
	callq	_field_to_perf
	testq	%rax, %rax
	je	LBB0_43
## %bb.42:                              ##   in Loop: Header=BB0_11 Depth=2
	movq	%rax, %rdi
	callq	_strdup
	movq	%rax, -192(%rbp)
	jmp	LBB0_48
LBB0_35:                                ##   in Loop: Header=BB0_11 Depth=2
	movq	-184(%rbp), %rdi
	leaq	-256(%rbp), %rsi
	leaq	L_.str.16(%rip), %rdx
	leaq	L_.str.17(%rip), %rcx
	jmp	LBB0_20
LBB0_49:                                ##   in Loop: Header=BB0_11 Depth=2
	movq	-184(%rbp), %rdi
	movq	%r12, %rsi
	leaq	L_.str.24(%rip), %rdx
	callq	_json_streq
	movq	-184(%rbp), %rdi
	testq	%rax, %rax
	je	LBB0_51
## %bb.50:                              ##   in Loop: Header=BB0_11 Depth=2
	leaq	-320(%rbp), %rsi
	jmp	LBB0_19
LBB0_43:                                ##   in Loop: Header=BB0_11 Depth=2
	cmpq	$0, -192(%rbp)
	jne	LBB0_45
## %bb.44:                              ##   in Loop: Header=BB0_11 Depth=2
	leaq	L_.str.21(%rip), %rdi
	callq	_strdup
	movq	%rax, -192(%rbp)
LBB0_45:                                ##   in Loop: Header=BB0_11 Depth=2
	movq	-184(%rbp), %rdi
	leaq	-192(%rbp), %rsi
	leaq	L_.str.6(%rip), %rcx
	movq	%rcx, %rdx
	movq	%r15, %r8
	callq	_addfield
	movq	-192(%rbp), %r15
	movb	(%r15), %al
	testb	%al, %al
	je	LBB0_48
## %bb.46:                              ##   in Loop: Header=BB0_11 Depth=2
	incq	%r15
LBB0_47:                                ##   Parent Loop BB0_8 Depth=1
                                        ##     Parent Loop BB0_11 Depth=2
                                        ## =>    This Inner Loop Header: Depth=3
	movsbl	%al, %edi
	callq	_tolower
	movb	%al, -1(%r15)
	movzbl	(%r15), %eax
	incq	%r15
	testb	%al, %al
	jne	LBB0_47
LBB0_48:                                ##   in Loop: Header=BB0_11 Depth=2
	movq	-184(%rbp), %rdi
	leaq	-200(%rbp), %r15
	movq	%r15, %rsi
	leaq	L_.str.16(%rip), %rdx
	leaq	L_.str.22(%rip), %rcx
	xorl	%r8d, %r8d
	callq	_addfield
	movq	-184(%rbp), %rdi
	movq	-192(%rbp), %rcx
	movq	%r15, %rsi
	leaq	L_.str.6(%rip), %rbx
	movq	%rbx, %rdx
	xorl	%r8d, %r8d
	callq	_addfield
	movq	-184(%rbp), %rdi
	movq	%r15, %rsi
	movq	%rbx, %rdx
	leaq	L_.str.23(%rip), %rcx
LBB0_39:                                ##   in Loop: Header=BB0_11 Depth=2
	xorl	%r8d, %r8d
	callq	_addfield
	jmp	LBB0_68
LBB0_51:                                ##   in Loop: Header=BB0_11 Depth=2
	movq	%r12, %rsi
	leaq	L_.str.25(%rip), %rdx
	callq	_json_streq
	movq	-184(%rbp), %rdi
	testq	%rax, %rax
	je	LBB0_53
## %bb.52:                              ##   in Loop: Header=BB0_11 Depth=2
	leaq	-304(%rbp), %rsi
	jmp	LBB0_19
LBB0_53:                                ##   in Loop: Header=BB0_11 Depth=2
	movq	%r12, %rsi
	leaq	L_.str.26(%rip), %rdx
	callq	_json_streq
	movq	-184(%rbp), %rdi
	testq	%rax, %rax
	je	LBB0_55
## %bb.54:                              ##   in Loop: Header=BB0_11 Depth=2
	leaq	-312(%rbp), %rsi
	jmp	LBB0_19
LBB0_55:                                ##   in Loop: Header=BB0_11 Depth=2
	movq	%r12, %rsi
	leaq	L_.str.27(%rip), %rdx
	callq	_json_streq
	movq	-184(%rbp), %rdi
	testq	%rax, %rax
	je	LBB0_57
## %bb.56:                              ##   in Loop: Header=BB0_11 Depth=2
	leaq	-296(%rbp), %rsi
	jmp	LBB0_19
LBB0_59:                                ##   in Loop: Header=BB0_11 Depth=2
	movq	%r12, %rsi
	leaq	L_.str.29(%rip), %rdx
	callq	_json_streq
	movq	-184(%rbp), %rdi
	testq	%rax, %rax
	je	LBB0_63
## %bb.60:                              ##   in Loop: Header=BB0_11 Depth=2
	leaq	-264(%rbp), %rsi
	leaq	L_.str.6(%rip), %rcx
	movq	%rcx, %rdx
	movq	%r15, %r8
	callq	_addfield
	movq	-264(%rbp), %r15
	movb	(%r15), %al
	testb	%al, %al
	je	LBB0_67
## %bb.61:                              ##   in Loop: Header=BB0_11 Depth=2
	incq	%r15
LBB0_62:                                ##   Parent Loop BB0_8 Depth=1
                                        ##     Parent Loop BB0_11 Depth=2
                                        ## =>    This Inner Loop Header: Depth=3
	movsbl	%al, %edi
	callq	_tolower
	movb	%al, -1(%r15)
	movzbl	(%r15), %eax
	incq	%r15
	testb	%al, %al
	jne	LBB0_62
	jmp	LBB0_67
LBB0_63:                                ##   in Loop: Header=BB0_11 Depth=2
	movq	%r12, %rsi
	leaq	L_.str.30(%rip), %rdx
	callq	_json_streq
	testq	%rax, %rax
	je	LBB0_67
## %bb.64:                              ##   in Loop: Header=BB0_11 Depth=2
	movq	-184(%rbp), %rdi
	leaq	-280(%rbp), %rsi
	leaq	L_.str.6(%rip), %rcx
	movq	%rcx, %rdx
	movq	%r15, %r8
	callq	_addfield
	movq	-280(%rbp), %r15
	movb	(%r15), %al
	testb	%al, %al
	je	LBB0_67
## %bb.65:                              ##   in Loop: Header=BB0_11 Depth=2
	incq	%r15
LBB0_66:                                ##   Parent Loop BB0_8 Depth=1
                                        ##     Parent Loop BB0_11 Depth=2
                                        ## =>    This Inner Loop Header: Depth=3
	movsbl	%al, %edi
	callq	_tolower
	movb	%al, -1(%r15)
	movzbl	(%r15), %eax
	incq	%r15
	testb	%al, %al
	jne	LBB0_66
	jmp	LBB0_67
	.p2align	4, 0x90
LBB0_69:                                ##   in Loop: Header=BB0_8 Depth=1
	movq	-368(%rbp), %rbx                ## 8-byte Reload
	testq	%rbx, %rbx
	je	LBB0_70
## %bb.71:                              ##   in Loop: Header=BB0_8 Depth=1
	movq	-200(%rbp), %rdi
	testq	%rdi, %rdi
	je	LBB0_70
## %bb.72:                              ##   in Loop: Header=BB0_8 Depth=1
	leaq	L_.str.31(%rip), %rsi
	callq	_strstr
	testl	%eax, %eax
	movq	-328(%rbp), %r13                ## 8-byte Reload
	movq	-336(%rbp), %r12                ## 8-byte Reload
	jne	LBB0_74
## %bb.73:                              ##   in Loop: Header=BB0_8 Depth=1
	movq	-184(%rbp), %rdi
	movq	%rbx, %rsi
	leaq	L_.str.32(%rip), %rdx
	callq	_json_streq
	testq	%rax, %rax
	movq	-184(%rbp), %rdi
	leaq	L_.str.33(%rip), %rcx
	leaq	L_.str.34(%rip), %rax
	cmoveq	%rax, %rcx
	leaq	-256(%rbp), %rsi
	leaq	L_.str.23(%rip), %rdx
	xorl	%r8d, %r8d
	callq	_addfield
	jmp	LBB0_74
	.p2align	4, 0x90
LBB0_70:                                ##   in Loop: Header=BB0_8 Depth=1
	movq	-328(%rbp), %r13                ## 8-byte Reload
	movq	-336(%rbp), %r12                ## 8-byte Reload
LBB0_74:                                ##   in Loop: Header=BB0_8 Depth=1
	movq	-248(%rbp), %rcx                ## 8-byte Reload
LBB0_75:                                ##   in Loop: Header=BB0_8 Depth=1
	leaq	-176(%rbp), %rbx
	movq	%rbx, %rdi
	movl	$128, %esi
	leaq	L_.str.35(%rip), %rdx
	movq	%rcx, %r15
	callq	_snprintf
	movq	-184(%rbp), %rdi
	leaq	-240(%rbp), %rsi
	leaq	L_.str.36(%rip), %rdx
	movq	%rbx, %rcx
	xorl	%r8d, %r8d
	callq	_addfield
	cmpq	$0, -200(%rbp)
	movq	-256(%rbp), %rcx
	je	LBB0_78
## %bb.76:                              ##   in Loop: Header=BB0_8 Depth=1
	testq	%rcx, %rcx
	je	LBB0_78
## %bb.77:                              ##   in Loop: Header=BB0_8 Depth=1
	movq	-184(%rbp), %rdi
	leaq	-200(%rbp), %rsi
	leaq	L_.str.23(%rip), %rdx
	xorl	%r8d, %r8d
	callq	_addfield
	movq	-256(%rbp), %rcx
LBB0_78:                                ##   in Loop: Header=BB0_8 Depth=1
	movq	-216(%rbp), %rax                ## 8-byte Reload
	cmpq	$0, -232(%rbp)
	je	LBB0_81
## %bb.79:                              ##   in Loop: Header=BB0_8 Depth=1
	testq	%rcx, %rcx
	je	LBB0_81
## %bb.80:                              ##   in Loop: Header=BB0_8 Depth=1
	movq	-184(%rbp), %rdi
	leaq	-232(%rbp), %rsi
	leaq	L_.str.23(%rip), %rdx
	xorl	%r8d, %r8d
	callq	_addfield
	movq	-216(%rbp), %rax                ## 8-byte Reload
LBB0_81:                                ##   in Loop: Header=BB0_8 Depth=1
	movq	-320(%rbp), %rcx
	testq	%rcx, %rcx
	je	LBB0_83
## %bb.82:                              ##   in Loop: Header=BB0_8 Depth=1
	movq	-184(%rbp), %rdi
	leaq	-240(%rbp), %rsi
	leaq	L_.str.36(%rip), %rdx
	xorl	%r8d, %r8d
	callq	_addfield
	movq	-216(%rbp), %rax                ## 8-byte Reload
LBB0_83:                                ##   in Loop: Header=BB0_8 Depth=1
	testq	%rax, %rax
	je	LBB0_85
## %bb.84:                              ##   in Loop: Header=BB0_8 Depth=1
	movq	-184(%rbp), %rdi
	movq	(%rax), %rcx
	leaq	-240(%rbp), %rsi
	leaq	L_.str.36(%rip), %rdx
	movq	-344(%rbp), %r8                 ## 8-byte Reload
	callq	_addfield
LBB0_85:                                ##   in Loop: Header=BB0_8 Depth=1
	movq	-272(%rbp), %rdi
	testq	%rdi, %rdi
	je	LBB0_87
## %bb.86:                              ##   in Loop: Header=BB0_8 Depth=1
	callq	_fixname
LBB0_87:                                ##   in Loop: Header=BB0_8 Depth=1
	movq	-280(%rbp), %rsi
	testq	%rsi, %rsi
	je	LBB0_89
## %bb.88:                              ##   in Loop: Header=BB0_8 Depth=1
	movq	-376(%rbp), %rdi                ## 8-byte Reload
	leaq	-240(%rbp), %rdx
	leaq	-200(%rbp), %rcx
	leaq	-272(%rbp), %r8
	leaq	-232(%rbp), %r9
	pushq	%r15
	leaq	-288(%rbp), %rax
	pushq	%rax
	leaq	-296(%rbp), %rax
	pushq	%rax
	leaq	-264(%rbp), %rax
	pushq	%rax
	leaq	-304(%rbp), %rax
	pushq	%rax
	leaq	-312(%rbp), %rax
	pushq	%rax
	leaq	-320(%rbp), %rax
	pushq	%rax
	leaq	-192(%rbp), %rax
	pushq	%rax
	callq	_try_fixup
	addq	$64, %rsp
	movl	%eax, %r15d
	testl	%eax, %eax
	jne	LBB0_90
LBB0_89:                                ##   in Loop: Header=BB0_8 Depth=1
	movq	-272(%rbp), %r15
	movq	-240(%rbp), %rsi
	movq	%r15, %rdi
	callq	_real_event
	movq	-200(%rbp), %rcx
	movq	-232(%rbp), %r8
	movq	-192(%rbp), %r9
	subq	$8, %rsp
	movq	-392(%rbp), %rdi                ## 8-byte Reload
	movq	%r15, %rsi
	movq	%rax, %rdx
	pushq	-288(%rbp)
	pushq	-296(%rbp)
	pushq	-264(%rbp)
	pushq	-312(%rbp)
	pushq	-304(%rbp)
	callq	*-384(%rbp)                     ## 8-byte Folded Reload
	addq	$48, %rsp
	movl	%eax, %r15d
LBB0_90:                                ##   in Loop: Header=BB0_8 Depth=1
	movq	-240(%rbp), %rdi
	callq	_free
	movq	-200(%rbp), %rdi
	callq	_free
	movq	-272(%rbp), %rdi
	callq	_free
	movq	-232(%rbp), %rdi
	callq	_free
	movq	-256(%rbp), %rdi
	callq	_free
	movq	-192(%rbp), %rdi
	callq	_free
	movq	-320(%rbp), %rdi
	callq	_free
	movq	-312(%rbp), %rdi
	callq	_free
	movq	-304(%rbp), %rdi
	callq	_free
	movq	-264(%rbp), %rdi
	callq	_free
	movq	-296(%rbp), %rdi
	callq	_free
	movq	-288(%rbp), %rdi
	callq	_free
	movq	-280(%rbp), %rdi
	callq	_free
	testl	%r15d, %r15d
	jne	LBB0_91
## %bb.92:                              ##   in Loop: Header=BB0_8 Depth=1
	movl	%r14d, %eax
	shlq	$4, %rax
	movq	-352(%rbp), %rsi                ## 8-byte Reload
	addq	%rax, %rsi
	incl	%r12d
	movq	%rsi, %rbx
	cmpl	8(%r13), %r12d
	jl	LBB0_8
	jmp	LBB0_93
LBB0_1:
	movq	_ENOENT@GOTPCREL(%rip), %rcx
	jmp	LBB0_2
LBB0_4:
	movq	_EIO@GOTPCREL(%rip), %rcx
LBB0_2:
	xorl	%eax, %eax
	subl	(%rcx), %eax
	jmp	LBB0_94
LBB0_6:
	movq	%rbx, %rsi
	jmp	LBB0_93
LBB0_91:
	movq	-352(%rbp), %rsi                ## 8-byte Reload
LBB0_93:
	movq	%rsi, %rax
	subq	%r13, %rax
	sarq	$4, %rax
	movslq	-356(%rbp), %rcx
	xorl	%edi, %edi
	cmpq	%rcx, %rax
	sete	%dil
	leaq	L_.str.37(%rip), %rdx
	callq	_EXPECT
	movq	-184(%rbp), %rdi
	movq	-408(%rbp), %rsi
	movq	%r13, %rdx
	callq	_free_json
	xorl	%eax, %eax
LBB0_94:
	movq	___stack_chk_guard@GOTPCREL(%rip), %rcx
	movq	(%rcx), %rcx
	cmpq	-48(%rbp), %rcx
	jne	LBB0_96
## %bb.95:
	addq	$376, %rsp                      ## imm = 0x178
	popq	%rbx
	popq	%r12
	popq	%r13
	popq	%r14
	popq	%r15
	popq	%rbp
	retq
LBB0_96:
	callq	___stack_chk_fail
	.cfi_endproc
                                        ## -- End function
	.comm	_ENOENT,4,2                     ## @ENOENT
	.comm	_EIO,4,2                        ## @EIO
	.comm	_JSMN_ARRAY,8,3                 ## @JSMN_ARRAY
	.section	__TEXT,__cstring,cstring_literals
L_.str:                                 ## @.str
	.asciz	"expected top level array"

	.comm	_JSMN_OBJECT,8,3                ## @JSMN_OBJECT
L_.str.1:                               ## @.str.1
	.asciz	"expected object"

	.comm	_JSMN_STRING,8,3                ## @JSMN_STRING
L_.str.2:                               ## @.str.2
	.asciz	"Expected field name"

L_.str.3:                               ## @.str.3
	.asciz	"Expected string value"

L_.str.4:                               ## @.str.4
	.asciz	"0"

L_.str.5:                               ## @.str.5
	.asciz	"EventCode"

L_.str.6:                               ## @.str.6
	.space	1

L_.str.7:                               ## @.str.7
	.asciz	"ExtSel"

L_.str.8:                               ## @.str.8
	.asciz	"EventName"

L_.str.9:                               ## @.str.9
	.asciz	"BriefDescription"

L_.str.10:                              ## @.str.10
	.asciz	"PublicDescription"

L_.str.11:                              ## @.str.11
	.asciz	"PEBS"

L_.str.12:                              ## @.str.12
	.asciz	"MSRIndex"

L_.str.13:                              ## @.str.13
	.asciz	"MSRValue"

L_.str.14:                              ## @.str.14
	.asciz	"Errata"

L_.str.15:                              ## @.str.15
	.asciz	"null"

L_.str.16:                              ## @.str.16
	.asciz	". "

L_.str.17:                              ## @.str.17
	.asciz	" Spec update: "

L_.str.18:                              ## @.str.18
	.asciz	"Data_LA"

L_.str.19:                              ## @.str.19
	.asciz	" Supports address when precise"

L_.str.20:                              ## @.str.20
	.asciz	"Unit"

	.comm	_unit_to_pmu,4,2                ## @unit_to_pmu
L_.str.21:                              ## @.str.21
	.asciz	"uncore_"

L_.str.22:                              ## @.str.22
	.asciz	"Unit: "

L_.str.23:                              ## @.str.23
	.asciz	" "

L_.str.24:                              ## @.str.24
	.asciz	"Filter"

L_.str.25:                              ## @.str.25
	.asciz	"ScaleUnit"

L_.str.26:                              ## @.str.26
	.asciz	"PerPkg"

L_.str.27:                              ## @.str.27
	.asciz	"MetricName"

L_.str.28:                              ## @.str.28
	.asciz	"MetricGroup"

L_.str.29:                              ## @.str.29
	.asciz	"MetricExpr"

L_.str.30:                              ## @.str.30
	.asciz	"ArchStdEvent"

L_.str.31:                              ## @.str.31
	.asciz	"(Precise Event)"

L_.str.32:                              ## @.str.32
	.asciz	"2"

L_.str.33:                              ## @.str.33
	.asciz	"(Must be precise)"

L_.str.34:                              ## @.str.34
	.asciz	"(Precise event)"

L_.str.35:                              ## @.str.35
	.asciz	"event=%#llx"

L_.str.36:                              ## @.str.36
	.asciz	","

L_.str.37:                              ## @.str.37
	.asciz	"unexpected objects at end"

.subsections_via_symbols

	.section	__TEXT,__text,regular,pure_instructions
	.build_version macos, 13, 0	sdk_version 13, 3
	.globl	_json_events                    ; -- Begin function json_events
	.p2align	2
_json_events:                           ; @json_events
	.cfi_startproc
; %bb.0:
	sub	sp, sp, #496
	.cfi_def_cfa_offset 496
	stp	x28, x27, [sp, #400]            ; 16-byte Folded Spill
	stp	x26, x25, [sp, #416]            ; 16-byte Folded Spill
	stp	x24, x23, [sp, #432]            ; 16-byte Folded Spill
	stp	x22, x21, [sp, #448]            ; 16-byte Folded Spill
	stp	x20, x19, [sp, #464]            ; 16-byte Folded Spill
	stp	x29, x30, [sp, #480]            ; 16-byte Folded Spill
	add	x29, sp, #480
	.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
	stp	x1, x2, [sp, #72]               ; 16-byte Folded Spill
Lloh0:
	adrp	x8, ___stack_chk_guard@GOTPAGE
Lloh1:
	ldr	x8, [x8, ___stack_chk_guard@GOTPAGEOFF]
Lloh2:
	ldr	x8, [x8]
	stur	x8, [x29, #-96]
	cbz	x0, LBB0_87
; %bb.1:
	mov	x22, x0
	add	x1, sp, #232
	sub	x2, x29, #232
	sub	x3, x29, #236
	bl	_parse_json
	cbz	x0, LBB0_88
; %bb.2:
	mov	x20, x0
	ldr	x8, [x0]
Lloh3:
	adrp	x9, _JSMN_ARRAY@GOTPAGE
Lloh4:
	ldr	x9, [x9, _JSMN_ARRAY@GOTPAGEOFF]
Lloh5:
	ldr	x9, [x9]
	cmp	x8, x9
	cset	w0, eq
Lloh6:
	adrp	x2, l_.str@PAGE
Lloh7:
	add	x2, x2, l_.str@PAGEOFF
	mov	x1, x20
	bl	_EXPECT
	add	x28, x20, #16
	ldr	w8, [x20, #8]
	cmp	w8, #1
	b.lt	LBB0_91
; %bb.3:
	mov	w9, #0
Lloh8:
	adrp	x27, _JSMN_STRING@GOTPAGE
Lloh9:
	ldr	x27, [x27, _JSMN_STRING@GOTPAGEOFF]
Lloh10:
	adrp	x25, l_.str.3@PAGE
Lloh11:
	add	x25, x25, l_.str.3@PAGEOFF
Lloh12:
	adrp	x26, l_.str.4@PAGE
Lloh13:
	add	x26, x26, l_.str.4@PAGEOFF
	stp	x22, x20, [sp, #56]             ; 16-byte Folded Spill
LBB0_4:                                 ; =>This Loop Header: Depth=1
                                        ;     Child Loop BB0_9 Depth 2
                                        ;       Child Loop BB0_44 Depth 3
                                        ;       Child Loop BB0_58 Depth 3
                                        ;       Child Loop BB0_62 Depth 3
	str	w9, [sp, #108]                  ; 4-byte Folded Spill
	stp	xzr, xzr, [sp, #216]
	stp	xzr, xzr, [sp, #200]
	stp	xzr, xzr, [sp, #184]
	stp	xzr, xzr, [sp, #168]
	stp	xzr, xzr, [sp, #152]
	stp	xzr, xzr, [sp, #136]
	str	xzr, [sp, #128]
	add	x23, x28, #16
	ldr	x8, [x28]
Lloh14:
	adrp	x9, _JSMN_OBJECT@GOTPAGE
Lloh15:
	ldr	x9, [x9, _JSMN_OBJECT@GOTPAGEOFF]
Lloh16:
	ldr	x9, [x9]
	cmp	x8, x9
	cset	w0, eq
	mov	x1, x28
Lloh17:
	adrp	x2, l_.str.1@PAGE
Lloh18:
	add	x2, x2, l_.str.1@PAGEOFF
	bl	_EXPECT
	ldr	w8, [x28, #8]
	cmp	w8, #1
	b.lt	LBB0_67
; %bb.5:                                ;   in Loop: Header=BB0_4 Depth=1
	mov	x24, #0
	stp	xzr, xzr, [sp, #88]             ; 16-byte Folded Spill
	str	xzr, [sp, #112]                 ; 8-byte Folded Spill
	mov	x21, #0
	b	LBB0_9
LBB0_6:                                 ;   in Loop: Header=BB0_9 Depth=2
	str	xzr, [sp, #120]
	ldr	x0, [sp, #232]
	add	x1, sp, #120
Lloh19:
	adrp	x2, l_.str.6@PAGE
Lloh20:
	add	x2, x2, l_.str.6@PAGEOFF
	mov	x3, x2
	mov	x4, x20
	bl	_addfield
	ldr	x0, [sp, #120]
	mov	x1, #0
	mov	w2, #0
	bl	_strtoul
                                        ; kill: def $w0 killed $w0 def $x0
	sxtw	x8, w0
LBB0_7:                                 ;   in Loop: Header=BB0_9 Depth=2
	orr	x21, x21, x8
	ldr	x0, [sp, #120]
	bl	_free
LBB0_8:                                 ;   in Loop: Header=BB0_9 Depth=2
	add	x24, x24, #2
	ldr	w8, [x28, #8]
	cmp	w8, w24
	b.le	LBB0_63
LBB0_9:                                 ;   Parent Loop BB0_4 Depth=1
                                        ; =>  This Loop Header: Depth=2
                                        ;       Child Loop BB0_44 Depth 3
                                        ;       Child Loop BB0_58 Depth 3
                                        ;       Child Loop BB0_62 Depth 3
	add	x19, x23, x24, lsl #4
	ldr	x8, [x19]
	ldr	x9, [x27]
	cmp	x8, x9
	cset	w0, eq
	mov	x1, x19
Lloh21:
	adrp	x2, l_.str.2@PAGE
Lloh22:
	add	x2, x2, l_.str.2@PAGEOFF
	bl	_EXPECT
	mov	x20, x19
	ldr	x8, [x20, #16]!
	ldr	x9, [x27]
	cmp	x8, x9
	cset	w0, eq
	mov	x1, x20
	mov	x2, x25
	bl	_EXPECT
	ldr	x0, [sp, #232]
	mov	x1, x20
	mov	x2, x26
	bl	_json_streq
	mov	x22, x0
	cmp	x0, #0
	cset	w2, eq
	ldr	x0, [sp, #232]
	add	x3, sp, #224
	mov	x1, x19
	mov	x4, x20
	bl	_match_field
	cbnz	x0, LBB0_8
; %bb.10:                               ;   in Loop: Header=BB0_9 Depth=2
	ldr	x0, [sp, #232]
	mov	x1, x19
Lloh23:
	adrp	x2, l_.str.5@PAGE
Lloh24:
	add	x2, x2, l_.str.5@PAGEOFF
	bl	_json_streq
	cbnz	x0, LBB0_6
; %bb.11:                               ;   in Loop: Header=BB0_9 Depth=2
	ldr	x0, [sp, #232]
	mov	x1, x19
Lloh25:
	adrp	x2, l_.str.7@PAGE
Lloh26:
	add	x2, x2, l_.str.7@PAGEOFF
	bl	_json_streq
	cbz	x0, LBB0_13
; %bb.12:                               ;   in Loop: Header=BB0_9 Depth=2
	str	xzr, [sp, #120]
	ldr	x0, [sp, #232]
	add	x1, sp, #120
Lloh27:
	adrp	x2, l_.str.6@PAGE
Lloh28:
	add	x2, x2, l_.str.6@PAGEOFF
	mov	x3, x2
	mov	x4, x20
	bl	_addfield
	ldr	x0, [sp, #120]
	mov	x1, #0
	mov	w2, #0
	bl	_strtoul
	lsl	w8, w0, #21
	sxtw	x8, w8
	b	LBB0_7
LBB0_13:                                ;   in Loop: Header=BB0_9 Depth=2
	ldr	x0, [sp, #232]
	mov	x1, x19
Lloh29:
	adrp	x2, l_.str.8@PAGE
Lloh30:
	add	x2, x2, l_.str.8@PAGEOFF
	bl	_json_streq
	mov	x8, x0
	ldr	x0, [sp, #232]
	cbz	x8, LBB0_17
; %bb.14:                               ;   in Loop: Header=BB0_9 Depth=2
	add	x1, sp, #208
LBB0_15:                                ;   in Loop: Header=BB0_9 Depth=2
Lloh31:
	adrp	x2, l_.str.6@PAGE
Lloh32:
	add	x2, x2, l_.str.6@PAGEOFF
	mov	x3, x2
LBB0_16:                                ;   in Loop: Header=BB0_9 Depth=2
	mov	x4, x20
	bl	_addfield
	b	LBB0_8
LBB0_17:                                ;   in Loop: Header=BB0_9 Depth=2
	mov	x1, x19
Lloh33:
	adrp	x2, l_.str.9@PAGE
Lloh34:
	add	x2, x2, l_.str.9@PAGEOFF
	bl	_json_streq
	mov	x8, x0
	ldr	x0, [sp, #232]
	cbz	x8, LBB0_19
; %bb.18:                               ;   in Loop: Header=BB0_9 Depth=2
	add	x1, sp, #216
Lloh35:
	adrp	x2, l_.str.6@PAGE
Lloh36:
	add	x2, x2, l_.str.6@PAGEOFF
	mov	x3, x2
	mov	x4, x20
	bl	_addfield
	ldr	x0, [sp, #216]
	bl	_fixdesc
	b	LBB0_8
LBB0_19:                                ;   in Loop: Header=BB0_9 Depth=2
	mov	x1, x19
Lloh37:
	adrp	x2, l_.str.10@PAGE
Lloh38:
	add	x2, x2, l_.str.10@PAGEOFF
	bl	_json_streq
	mov	x8, x0
	ldr	x0, [sp, #232]
	cbz	x8, LBB0_21
; %bb.20:                               ;   in Loop: Header=BB0_9 Depth=2
	add	x1, sp, #200
Lloh39:
	adrp	x2, l_.str.6@PAGE
Lloh40:
	add	x2, x2, l_.str.6@PAGEOFF
	mov	x3, x2
	mov	x4, x20
	bl	_addfield
	ldr	x0, [sp, #200]
	bl	_fixdesc
	b	LBB0_8
LBB0_21:                                ;   in Loop: Header=BB0_9 Depth=2
	mov	x1, x19
Lloh41:
	adrp	x2, l_.str.11@PAGE
Lloh42:
	add	x2, x2, l_.str.11@PAGEOFF
	bl	_json_streq
	cbz	x0, LBB0_24
; %bb.22:                               ;   in Loop: Header=BB0_9 Depth=2
	cbnz	x22, LBB0_24
; %bb.23:                               ;   in Loop: Header=BB0_9 Depth=2
	str	x20, [sp, #96]                  ; 8-byte Folded Spill
	b	LBB0_8
LBB0_24:                                ;   in Loop: Header=BB0_9 Depth=2
	ldr	x0, [sp, #232]
	mov	x1, x19
Lloh43:
	adrp	x2, l_.str.12@PAGE
Lloh44:
	add	x2, x2, l_.str.12@PAGEOFF
	bl	_json_streq
	mov	x8, x0
	ldr	x0, [sp, #232]
	cbz	x8, LBB0_27
; %bb.25:                               ;   in Loop: Header=BB0_9 Depth=2
	cbnz	x22, LBB0_27
; %bb.26:                               ;   in Loop: Header=BB0_9 Depth=2
	mov	x1, x20
	bl	_lookup_msr
	str	x0, [sp, #112]                  ; 8-byte Folded Spill
	b	LBB0_8
LBB0_27:                                ;   in Loop: Header=BB0_9 Depth=2
	mov	x1, x19
Lloh45:
	adrp	x2, l_.str.13@PAGE
Lloh46:
	add	x2, x2, l_.str.13@PAGEOFF
	bl	_json_streq
	cbz	x0, LBB0_29
; %bb.28:                               ;   in Loop: Header=BB0_9 Depth=2
	str	x20, [sp, #88]                  ; 8-byte Folded Spill
	b	LBB0_8
LBB0_29:                                ;   in Loop: Header=BB0_9 Depth=2
	ldr	x0, [sp, #232]
	mov	x1, x19
Lloh47:
	adrp	x2, l_.str.14@PAGE
Lloh48:
	add	x2, x2, l_.str.14@PAGEOFF
	bl	_json_streq
	cbz	x0, LBB0_31
; %bb.30:                               ;   in Loop: Header=BB0_9 Depth=2
	ldr	x0, [sp, #232]
	mov	x1, x20
Lloh49:
	adrp	x2, l_.str.15@PAGE
Lloh50:
	add	x2, x2, l_.str.15@PAGEOFF
	bl	_json_streq
	cbz	x0, LBB0_37
LBB0_31:                                ;   in Loop: Header=BB0_9 Depth=2
	ldr	x0, [sp, #232]
	mov	x1, x19
Lloh51:
	adrp	x2, l_.str.18@PAGE
Lloh52:
	add	x2, x2, l_.str.18@PAGEOFF
	bl	_json_streq
	mov	x8, x0
	ldr	x0, [sp, #232]
	cbz	x8, LBB0_34
; %bb.32:                               ;   in Loop: Header=BB0_9 Depth=2
	cbnz	x22, LBB0_34
; %bb.33:                               ;   in Loop: Header=BB0_9 Depth=2
	add	x1, sp, #192
Lloh53:
	adrp	x2, l_.str.16@PAGE
Lloh54:
	add	x2, x2, l_.str.16@PAGEOFF
Lloh55:
	adrp	x3, l_.str.19@PAGE
Lloh56:
	add	x3, x3, l_.str.19@PAGEOFF
	b	LBB0_46
LBB0_34:                                ;   in Loop: Header=BB0_9 Depth=2
	mov	x1, x19
Lloh57:
	adrp	x2, l_.str.20@PAGE
Lloh58:
	add	x2, x2, l_.str.20@PAGEOFF
	bl	_json_streq
	cbz	x0, LBB0_38
; %bb.35:                               ;   in Loop: Header=BB0_9 Depth=2
Lloh59:
	adrp	x8, _unit_to_pmu@GOTPAGE
Lloh60:
	ldr	x8, [x8, _unit_to_pmu@GOTPAGEOFF]
Lloh61:
	ldr	w0, [x8]
	ldr	x1, [sp, #232]
	mov	x2, x20
	bl	_field_to_perf
	cbz	x0, LBB0_40
; %bb.36:                               ;   in Loop: Header=BB0_9 Depth=2
	bl	_strdup
	str	x0, [sp, #184]
	b	LBB0_45
LBB0_37:                                ;   in Loop: Header=BB0_9 Depth=2
	ldr	x0, [sp, #232]
	add	x1, sp, #192
Lloh62:
	adrp	x2, l_.str.16@PAGE
Lloh63:
	add	x2, x2, l_.str.16@PAGEOFF
Lloh64:
	adrp	x3, l_.str.17@PAGE
Lloh65:
	add	x3, x3, l_.str.17@PAGEOFF
	b	LBB0_16
LBB0_38:                                ;   in Loop: Header=BB0_9 Depth=2
	ldr	x0, [sp, #232]
	mov	x1, x19
Lloh66:
	adrp	x2, l_.str.24@PAGE
Lloh67:
	add	x2, x2, l_.str.24@PAGEOFF
	bl	_json_streq
	mov	x8, x0
	ldr	x0, [sp, #232]
	cbz	x8, LBB0_47
; %bb.39:                               ;   in Loop: Header=BB0_9 Depth=2
	add	x1, sp, #176
	b	LBB0_15
LBB0_40:                                ;   in Loop: Header=BB0_9 Depth=2
	ldr	x8, [sp, #184]
	cbnz	x8, LBB0_42
; %bb.41:                               ;   in Loop: Header=BB0_9 Depth=2
Lloh68:
	adrp	x0, l_.str.21@PAGE
Lloh69:
	add	x0, x0, l_.str.21@PAGEOFF
	bl	_strdup
	str	x0, [sp, #184]
LBB0_42:                                ;   in Loop: Header=BB0_9 Depth=2
	ldr	x0, [sp, #232]
	add	x1, sp, #184
Lloh70:
	adrp	x2, l_.str.6@PAGE
Lloh71:
	add	x2, x2, l_.str.6@PAGEOFF
	mov	x3, x2
	mov	x4, x20
	bl	_addfield
	ldr	x9, [sp, #184]
	ldrb	w8, [x9]
	cbz	w8, LBB0_45
; %bb.43:                               ;   in Loop: Header=BB0_9 Depth=2
	add	x19, x9, #1
LBB0_44:                                ;   Parent Loop BB0_4 Depth=1
                                        ;     Parent Loop BB0_9 Depth=2
                                        ; =>    This Inner Loop Header: Depth=3
	sxtb	w0, w8
	bl	_tolower
	sturb	w0, [x19, #-1]
	ldrb	w8, [x19], #1
	cbnz	w8, LBB0_44
LBB0_45:                                ;   in Loop: Header=BB0_9 Depth=2
	ldr	x0, [sp, #232]
	add	x1, sp, #216
Lloh72:
	adrp	x2, l_.str.16@PAGE
Lloh73:
	add	x2, x2, l_.str.16@PAGEOFF
Lloh74:
	adrp	x3, l_.str.22@PAGE
Lloh75:
	add	x3, x3, l_.str.22@PAGEOFF
	mov	x4, #0
	bl	_addfield
	ldr	x0, [sp, #232]
	ldr	x3, [sp, #184]
	add	x1, sp, #216
Lloh76:
	adrp	x19, l_.str.6@PAGE
Lloh77:
	add	x19, x19, l_.str.6@PAGEOFF
	mov	x2, x19
	mov	x4, #0
	bl	_addfield
	ldr	x0, [sp, #232]
	add	x1, sp, #216
	mov	x2, x19
Lloh78:
	adrp	x3, l_.str.23@PAGE
Lloh79:
	add	x3, x3, l_.str.23@PAGEOFF
LBB0_46:                                ;   in Loop: Header=BB0_9 Depth=2
	mov	x4, #0
	bl	_addfield
	b	LBB0_8
LBB0_47:                                ;   in Loop: Header=BB0_9 Depth=2
	mov	x1, x19
Lloh80:
	adrp	x2, l_.str.25@PAGE
Lloh81:
	add	x2, x2, l_.str.25@PAGEOFF
	bl	_json_streq
	mov	x8, x0
	ldr	x0, [sp, #232]
	cbz	x8, LBB0_49
; %bb.48:                               ;   in Loop: Header=BB0_9 Depth=2
	add	x1, sp, #160
	b	LBB0_15
LBB0_49:                                ;   in Loop: Header=BB0_9 Depth=2
	mov	x1, x19
Lloh82:
	adrp	x2, l_.str.26@PAGE
Lloh83:
	add	x2, x2, l_.str.26@PAGEOFF
	bl	_json_streq
	mov	x8, x0
	ldr	x0, [sp, #232]
	cbz	x8, LBB0_51
; %bb.50:                               ;   in Loop: Header=BB0_9 Depth=2
	add	x1, sp, #168
	b	LBB0_15
LBB0_51:                                ;   in Loop: Header=BB0_9 Depth=2
	mov	x1, x19
Lloh84:
	adrp	x2, l_.str.27@PAGE
Lloh85:
	add	x2, x2, l_.str.27@PAGEOFF
	bl	_json_streq
	mov	x8, x0
	ldr	x0, [sp, #232]
	cbz	x8, LBB0_53
; %bb.52:                               ;   in Loop: Header=BB0_9 Depth=2
	add	x1, sp, #144
	b	LBB0_15
LBB0_53:                                ;   in Loop: Header=BB0_9 Depth=2
	mov	x1, x19
Lloh86:
	adrp	x2, l_.str.28@PAGE
Lloh87:
	add	x2, x2, l_.str.28@PAGEOFF
	bl	_json_streq
	mov	x8, x0
	ldr	x0, [sp, #232]
	cbz	x8, LBB0_55
; %bb.54:                               ;   in Loop: Header=BB0_9 Depth=2
	add	x1, sp, #136
	b	LBB0_15
LBB0_55:                                ;   in Loop: Header=BB0_9 Depth=2
	mov	x1, x19
Lloh88:
	adrp	x2, l_.str.29@PAGE
Lloh89:
	add	x2, x2, l_.str.29@PAGEOFF
	bl	_json_streq
	mov	x8, x0
	ldr	x0, [sp, #232]
	cbz	x8, LBB0_59
; %bb.56:                               ;   in Loop: Header=BB0_9 Depth=2
	add	x1, sp, #152
Lloh90:
	adrp	x2, l_.str.6@PAGE
Lloh91:
	add	x2, x2, l_.str.6@PAGEOFF
	mov	x3, x2
	mov	x4, x20
	bl	_addfield
	ldr	x9, [sp, #152]
	ldrb	w8, [x9]
	cbz	w8, LBB0_8
; %bb.57:                               ;   in Loop: Header=BB0_9 Depth=2
	add	x19, x9, #1
LBB0_58:                                ;   Parent Loop BB0_4 Depth=1
                                        ;     Parent Loop BB0_9 Depth=2
                                        ; =>    This Inner Loop Header: Depth=3
	sxtb	w0, w8
	bl	_tolower
	sturb	w0, [x19, #-1]
	ldrb	w8, [x19], #1
	cbnz	w8, LBB0_58
	b	LBB0_8
LBB0_59:                                ;   in Loop: Header=BB0_9 Depth=2
	mov	x1, x19
Lloh92:
	adrp	x2, l_.str.30@PAGE
Lloh93:
	add	x2, x2, l_.str.30@PAGEOFF
	bl	_json_streq
	cbz	x0, LBB0_8
; %bb.60:                               ;   in Loop: Header=BB0_9 Depth=2
	ldr	x0, [sp, #232]
	add	x1, sp, #128
Lloh94:
	adrp	x2, l_.str.6@PAGE
Lloh95:
	add	x2, x2, l_.str.6@PAGEOFF
	mov	x3, x2
	mov	x4, x20
	bl	_addfield
	ldr	x9, [sp, #128]
	ldrb	w8, [x9]
	cbz	w8, LBB0_8
; %bb.61:                               ;   in Loop: Header=BB0_9 Depth=2
	add	x19, x9, #1
LBB0_62:                                ;   Parent Loop BB0_4 Depth=1
                                        ;     Parent Loop BB0_9 Depth=2
                                        ; =>    This Inner Loop Header: Depth=3
	sxtb	w0, w8
	bl	_tolower
	sturb	w0, [x19, #-1]
	ldrb	w8, [x19], #1
	cbnz	w8, LBB0_62
	b	LBB0_8
LBB0_63:                                ;   in Loop: Header=BB0_4 Depth=1
	ldr	x8, [sp, #96]                   ; 8-byte Folded Reload
	cbz	x8, LBB0_68
; %bb.64:                               ;   in Loop: Header=BB0_4 Depth=1
	ldr	x0, [sp, #216]
Lloh96:
	adrp	x19, l_.str.36@PAGE
Lloh97:
	add	x19, x19, l_.str.36@PAGEOFF
	ldr	x28, [sp, #88]                  ; 8-byte Folded Reload
	cbz	x0, LBB0_69
; %bb.65:                               ;   in Loop: Header=BB0_4 Depth=1
Lloh98:
	adrp	x1, l_.str.31@PAGE
Lloh99:
	add	x1, x1, l_.str.31@PAGEOFF
	bl	_strstr
	ldp	x22, x20, [sp, #56]             ; 16-byte Folded Reload
	cbnz	w0, LBB0_70
; %bb.66:                               ;   in Loop: Header=BB0_4 Depth=1
	ldr	x0, [sp, #232]
	ldr	x1, [sp, #96]                   ; 8-byte Folded Reload
Lloh100:
	adrp	x2, l_.str.32@PAGE
Lloh101:
	add	x2, x2, l_.str.32@PAGEOFF
	bl	_json_streq
	ldr	x8, [sp, #232]
	cmp	x0, #0
Lloh102:
	adrp	x9, l_.str.33@PAGE
Lloh103:
	add	x9, x9, l_.str.33@PAGEOFF
Lloh104:
	adrp	x10, l_.str.34@PAGE
Lloh105:
	add	x10, x10, l_.str.34@PAGEOFF
	csel	x3, x10, x9, eq
	add	x1, sp, #192
	mov	x0, x8
Lloh106:
	adrp	x2, l_.str.23@PAGE
Lloh107:
	add	x2, x2, l_.str.23@PAGEOFF
	mov	x4, #0
	bl	_addfield
	b	LBB0_70
LBB0_67:                                ;   in Loop: Header=BB0_4 Depth=1
	mov	x24, #0
	mov	x28, #0
	str	xzr, [sp, #112]                 ; 8-byte Folded Spill
	mov	x21, #0
Lloh108:
	adrp	x19, l_.str.36@PAGE
Lloh109:
	add	x19, x19, l_.str.36@PAGEOFF
	b	LBB0_70
LBB0_68:                                ;   in Loop: Header=BB0_4 Depth=1
	ldp	x22, x20, [sp, #56]             ; 16-byte Folded Reload
Lloh110:
	adrp	x19, l_.str.36@PAGE
Lloh111:
	add	x19, x19, l_.str.36@PAGEOFF
	ldr	x28, [sp, #88]                  ; 8-byte Folded Reload
	b	LBB0_70
LBB0_69:                                ;   in Loop: Header=BB0_4 Depth=1
	ldp	x22, x20, [sp, #56]             ; 16-byte Folded Reload
LBB0_70:                                ;   in Loop: Header=BB0_4 Depth=1
	sub	x0, x29, #224
	mov	w1, #128
Lloh112:
	adrp	x2, l_.str.35@PAGE
Lloh113:
	add	x2, x2, l_.str.35@PAGEOFF
	mov	x3, x21
	bl	_snprintf
	ldr	x0, [sp, #232]
	add	x1, sp, #224
	sub	x3, x29, #224
	mov	x2, x19
	mov	x4, #0
	bl	_addfield
	ldr	x8, [sp, #216]
	ldr	x3, [sp, #192]
	cbz	x8, LBB0_73
; %bb.71:                               ;   in Loop: Header=BB0_4 Depth=1
	cbz	x3, LBB0_73
; %bb.72:                               ;   in Loop: Header=BB0_4 Depth=1
	ldr	x0, [sp, #232]
	add	x1, sp, #216
Lloh114:
	adrp	x2, l_.str.23@PAGE
Lloh115:
	add	x2, x2, l_.str.23@PAGEOFF
	mov	x4, #0
	bl	_addfield
	ldr	x3, [sp, #192]
LBB0_73:                                ;   in Loop: Header=BB0_4 Depth=1
	ldr	x8, [sp, #200]
	cbz	x8, LBB0_76
; %bb.74:                               ;   in Loop: Header=BB0_4 Depth=1
	cbz	x3, LBB0_76
; %bb.75:                               ;   in Loop: Header=BB0_4 Depth=1
	ldr	x0, [sp, #232]
	add	x1, sp, #200
Lloh116:
	adrp	x2, l_.str.23@PAGE
Lloh117:
	add	x2, x2, l_.str.23@PAGEOFF
	mov	x4, #0
	bl	_addfield
LBB0_76:                                ;   in Loop: Header=BB0_4 Depth=1
	ldr	x3, [sp, #176]
	cbz	x3, LBB0_78
; %bb.77:                               ;   in Loop: Header=BB0_4 Depth=1
	ldr	x0, [sp, #232]
	add	x1, sp, #224
	mov	x2, x19
	mov	x4, #0
	bl	_addfield
LBB0_78:                                ;   in Loop: Header=BB0_4 Depth=1
	ldr	x8, [sp, #112]                  ; 8-byte Folded Reload
	cbz	x8, LBB0_80
; %bb.79:                               ;   in Loop: Header=BB0_4 Depth=1
	ldr	x0, [sp, #232]
	ldr	x3, [x8]
	add	x1, sp, #224
	mov	x2, x19
	mov	x4, x28
	bl	_addfield
LBB0_80:                                ;   in Loop: Header=BB0_4 Depth=1
	ldr	x0, [sp, #208]
	cbz	x0, LBB0_82
; %bb.81:                               ;   in Loop: Header=BB0_4 Depth=1
	bl	_fixname
LBB0_82:                                ;   in Loop: Header=BB0_4 Depth=1
	ldr	x1, [sp, #128]
	cbz	x1, LBB0_84
; %bb.83:                               ;   in Loop: Header=BB0_4 Depth=1
	add	x8, sp, #136
	stp	x8, x21, [sp, #32]
	add	x2, sp, #224
	add	x8, sp, #144
	str	x8, [sp, #24]
	add	x8, sp, #152
	str	x8, [sp, #16]
	add	x3, sp, #216
	add	x4, sp, #208
	add	x5, sp, #200
	add	x6, sp, #184
	add	x7, sp, #176
	add	x8, sp, #160
	str	x8, [sp, #8]
	add	x8, sp, #168
	str	x8, [sp]
	mov	x0, x22
	bl	_try_fixup
	mov	x19, x0
	cbnz	w0, LBB0_85
LBB0_84:                                ;   in Loop: Header=BB0_4 Depth=1
	ldr	x19, [sp, #208]
	ldr	x1, [sp, #224]
	mov	x0, x19
	bl	_real_event
	mov	x2, x0
	ldr	x3, [sp, #216]
	ldr	x4, [sp, #200]
	ldr	x5, [sp, #184]
	ldp	x6, x7, [sp, #160]
	ldp	x9, x8, [sp, #144]
	ldr	x10, [sp, #136]
	stp	x9, x10, [sp, #8]
	str	x8, [sp]
	ldp	x8, x0, [sp, #72]               ; 16-byte Folded Reload
	mov	x1, x19
	blr	x8
	mov	x19, x0
LBB0_85:                                ;   in Loop: Header=BB0_4 Depth=1
	ldr	x0, [sp, #224]
	bl	_free
	ldr	x0, [sp, #216]
	bl	_free
	ldr	x0, [sp, #208]
	bl	_free
	ldr	x0, [sp, #200]
	bl	_free
	ldr	x0, [sp, #192]
	bl	_free
	ldr	x0, [sp, #184]
	bl	_free
	ldr	x0, [sp, #176]
	bl	_free
	ldr	x0, [sp, #168]
	bl	_free
	ldr	x0, [sp, #160]
	bl	_free
	ldr	x0, [sp, #152]
	bl	_free
	ldr	x0, [sp, #144]
	bl	_free
	ldr	x0, [sp, #136]
	bl	_free
	ldr	x0, [sp, #128]
	bl	_free
	cbnz	w19, LBB0_90
; %bb.86:                               ;   in Loop: Header=BB0_4 Depth=1
	add	x28, x23, w24, uxtw #4
	ldr	w9, [sp, #108]                  ; 4-byte Folded Reload
	add	w9, w9, #1
	ldr	w8, [x20, #8]
	cmp	w9, w8
	b.lt	LBB0_4
	b	LBB0_91
LBB0_87:
Lloh118:
	adrp	x8, _ENOENT@GOTPAGE
Lloh119:
	ldr	x8, [x8, _ENOENT@GOTPAGEOFF]
	b	LBB0_89
LBB0_88:
Lloh120:
	adrp	x8, _EIO@GOTPAGE
Lloh121:
	ldr	x8, [x8, _EIO@GOTPAGEOFF]
LBB0_89:
	ldr	w8, [x8]
	neg	w0, w8
	b	LBB0_92
LBB0_90:
	mov	x28, x23
LBB0_91:
	sub	x8, x28, x20
	ldursw	x9, [x29, #-236]
	cmp	x9, x8, asr #4
	cset	w0, eq
Lloh122:
	adrp	x2, l_.str.37@PAGE
Lloh123:
	add	x2, x2, l_.str.37@PAGEOFF
	mov	x1, x28
	bl	_EXPECT
	ldr	x0, [sp, #232]
	ldur	x1, [x29, #-232]
	mov	x2, x20
	bl	_free_json
	mov	w0, #0
LBB0_92:
	ldur	x8, [x29, #-96]
Lloh124:
	adrp	x9, ___stack_chk_guard@GOTPAGE
Lloh125:
	ldr	x9, [x9, ___stack_chk_guard@GOTPAGEOFF]
Lloh126:
	ldr	x9, [x9]
	cmp	x9, x8
	b.ne	LBB0_94
; %bb.93:
	ldp	x29, x30, [sp, #480]            ; 16-byte Folded Reload
	ldp	x20, x19, [sp, #464]            ; 16-byte Folded Reload
	ldp	x22, x21, [sp, #448]            ; 16-byte Folded Reload
	ldp	x24, x23, [sp, #432]            ; 16-byte Folded Reload
	ldp	x26, x25, [sp, #416]            ; 16-byte Folded Reload
	ldp	x28, x27, [sp, #400]            ; 16-byte Folded Reload
	add	sp, sp, #496
	ret
LBB0_94:
	bl	___stack_chk_fail
	.loh AdrpLdrGotLdr	Lloh0, Lloh1, Lloh2
	.loh AdrpAdd	Lloh6, Lloh7
	.loh AdrpLdrGotLdr	Lloh3, Lloh4, Lloh5
	.loh AdrpAdd	Lloh12, Lloh13
	.loh AdrpAdd	Lloh10, Lloh11
	.loh AdrpLdrGot	Lloh8, Lloh9
	.loh AdrpAdd	Lloh17, Lloh18
	.loh AdrpLdrGotLdr	Lloh14, Lloh15, Lloh16
	.loh AdrpAdd	Lloh19, Lloh20
	.loh AdrpAdd	Lloh21, Lloh22
	.loh AdrpAdd	Lloh23, Lloh24
	.loh AdrpAdd	Lloh25, Lloh26
	.loh AdrpAdd	Lloh27, Lloh28
	.loh AdrpAdd	Lloh29, Lloh30
	.loh AdrpAdd	Lloh31, Lloh32
	.loh AdrpAdd	Lloh33, Lloh34
	.loh AdrpAdd	Lloh35, Lloh36
	.loh AdrpAdd	Lloh37, Lloh38
	.loh AdrpAdd	Lloh39, Lloh40
	.loh AdrpAdd	Lloh41, Lloh42
	.loh AdrpAdd	Lloh43, Lloh44
	.loh AdrpAdd	Lloh45, Lloh46
	.loh AdrpAdd	Lloh47, Lloh48
	.loh AdrpAdd	Lloh49, Lloh50
	.loh AdrpAdd	Lloh51, Lloh52
	.loh AdrpAdd	Lloh55, Lloh56
	.loh AdrpAdd	Lloh53, Lloh54
	.loh AdrpAdd	Lloh57, Lloh58
	.loh AdrpLdrGotLdr	Lloh59, Lloh60, Lloh61
	.loh AdrpAdd	Lloh64, Lloh65
	.loh AdrpAdd	Lloh62, Lloh63
	.loh AdrpAdd	Lloh66, Lloh67
	.loh AdrpAdd	Lloh68, Lloh69
	.loh AdrpAdd	Lloh70, Lloh71
	.loh AdrpAdd	Lloh78, Lloh79
	.loh AdrpAdd	Lloh76, Lloh77
	.loh AdrpAdd	Lloh74, Lloh75
	.loh AdrpAdd	Lloh72, Lloh73
	.loh AdrpAdd	Lloh80, Lloh81
	.loh AdrpAdd	Lloh82, Lloh83
	.loh AdrpAdd	Lloh84, Lloh85
	.loh AdrpAdd	Lloh86, Lloh87
	.loh AdrpAdd	Lloh88, Lloh89
	.loh AdrpAdd	Lloh90, Lloh91
	.loh AdrpAdd	Lloh92, Lloh93
	.loh AdrpAdd	Lloh94, Lloh95
	.loh AdrpAdd	Lloh96, Lloh97
	.loh AdrpAdd	Lloh98, Lloh99
	.loh AdrpAdd	Lloh106, Lloh107
	.loh AdrpAdd	Lloh104, Lloh105
	.loh AdrpAdd	Lloh102, Lloh103
	.loh AdrpAdd	Lloh100, Lloh101
	.loh AdrpAdd	Lloh108, Lloh109
	.loh AdrpAdd	Lloh110, Lloh111
	.loh AdrpAdd	Lloh112, Lloh113
	.loh AdrpAdd	Lloh114, Lloh115
	.loh AdrpAdd	Lloh116, Lloh117
	.loh AdrpLdrGot	Lloh118, Lloh119
	.loh AdrpLdrGot	Lloh120, Lloh121
	.loh AdrpAdd	Lloh122, Lloh123
	.loh AdrpLdrGotLdr	Lloh124, Lloh125, Lloh126
	.cfi_endproc
                                        ; -- End function
	.comm	_ENOENT,4,2                     ; @ENOENT
	.comm	_EIO,4,2                        ; @EIO
	.comm	_JSMN_ARRAY,8,3                 ; @JSMN_ARRAY
	.section	__TEXT,__cstring,cstring_literals
l_.str:                                 ; @.str
	.asciz	"expected top level array"

	.comm	_JSMN_OBJECT,8,3                ; @JSMN_OBJECT
l_.str.1:                               ; @.str.1
	.asciz	"expected object"

	.comm	_JSMN_STRING,8,3                ; @JSMN_STRING
l_.str.2:                               ; @.str.2
	.asciz	"Expected field name"

l_.str.3:                               ; @.str.3
	.asciz	"Expected string value"

l_.str.4:                               ; @.str.4
	.asciz	"0"

l_.str.5:                               ; @.str.5
	.asciz	"EventCode"

l_.str.6:                               ; @.str.6
	.space	1

l_.str.7:                               ; @.str.7
	.asciz	"ExtSel"

l_.str.8:                               ; @.str.8
	.asciz	"EventName"

l_.str.9:                               ; @.str.9
	.asciz	"BriefDescription"

l_.str.10:                              ; @.str.10
	.asciz	"PublicDescription"

l_.str.11:                              ; @.str.11
	.asciz	"PEBS"

l_.str.12:                              ; @.str.12
	.asciz	"MSRIndex"

l_.str.13:                              ; @.str.13
	.asciz	"MSRValue"

l_.str.14:                              ; @.str.14
	.asciz	"Errata"

l_.str.15:                              ; @.str.15
	.asciz	"null"

l_.str.16:                              ; @.str.16
	.asciz	". "

l_.str.17:                              ; @.str.17
	.asciz	" Spec update: "

l_.str.18:                              ; @.str.18
	.asciz	"Data_LA"

l_.str.19:                              ; @.str.19
	.asciz	" Supports address when precise"

l_.str.20:                              ; @.str.20
	.asciz	"Unit"

	.comm	_unit_to_pmu,4,2                ; @unit_to_pmu
l_.str.21:                              ; @.str.21
	.asciz	"uncore_"

l_.str.22:                              ; @.str.22
	.asciz	"Unit: "

l_.str.23:                              ; @.str.23
	.asciz	" "

l_.str.24:                              ; @.str.24
	.asciz	"Filter"

l_.str.25:                              ; @.str.25
	.asciz	"ScaleUnit"

l_.str.26:                              ; @.str.26
	.asciz	"PerPkg"

l_.str.27:                              ; @.str.27
	.asciz	"MetricName"

l_.str.28:                              ; @.str.28
	.asciz	"MetricGroup"

l_.str.29:                              ; @.str.29
	.asciz	"MetricExpr"

l_.str.30:                              ; @.str.30
	.asciz	"ArchStdEvent"

l_.str.31:                              ; @.str.31
	.asciz	"(Precise Event)"

l_.str.32:                              ; @.str.32
	.asciz	"2"

l_.str.33:                              ; @.str.33
	.asciz	"(Must be precise)"

l_.str.34:                              ; @.str.34
	.asciz	"(Precise event)"

l_.str.35:                              ; @.str.35
	.asciz	"event=%#llx"

l_.str.36:                              ; @.str.36
	.asciz	","

l_.str.37:                              ; @.str.37
	.asciz	"unexpected objects at end"

.subsections_via_symbols
