	.file	"extr_jsmn.c_jsmn_parse_string.c"
	.intel_syntax noprefix
	.text
	.p2align 4
	.type	jsmn_parse_string, @function
jsmn_parse_string:
.LFB0:
	.cfi_startproc
	endbr64
	push	r14
	.cfi_def_cfa_offset 16
	.cfi_offset 14, -16
	push	r13
	.cfi_def_cfa_offset 24
	.cfi_offset 13, -24
	push	r12
	.cfi_def_cfa_offset 32
	.cfi_offset 12, -32
	push	rbp
	.cfi_def_cfa_offset 40
	.cfi_offset 6, -40
	push	rbx
	.cfi_def_cfa_offset 48
	.cfi_offset 3, -48
	mov	ebp, DWORD PTR [rdi]
	mov	rbx, rdi
	lea	r12d, 1[rbp]
	movsx	rax, r12d
	mov	DWORD PTR [rdi], r12d
	mov	r9d, r12d
	lea	rdi, .L13[rip]
	cmp	rdx, rax
	ja	.L2
	jmp	.L18
	.p2align 4,,10
	.p2align 3
.L6:
	mov	eax, DWORD PTR [rbx]
	lea	r9d, 1[rax]
	movsx	rax, r9d
.L8:
	mov	DWORD PTR [rbx], r9d
	cmp	rdx, rax
	jbe	.L18
.L2:
	movzx	eax, BYTE PTR [rsi+rax]
	test	al, al
	je	.L18
	cmp	al, 34
	je	.L40
	cmp	al, 92
	jne	.L6
	lea	r10d, 1[r9]
	movsx	rax, r10d
	cmp	rax, rdx
	jnb	.L6
	mov	DWORD PTR [rbx], r10d
	movzx	eax, BYTE PTR [rsi+rax]
	cmp	al, 117
	jg	.L9
	cmp	al, 91
	jle	.L41
	sub	eax, 92
	cmp	al, 25
	ja	.L9
	movzx	eax, al
	movsx	rax, DWORD PTR [rdi+rax*4]
	add	rax, rdi
	notrack jmp	rax
	.section	.rodata
	.align 4
	.align 4
.L13:
	.long	.L11-.L13
	.long	.L9-.L13
	.long	.L9-.L13
	.long	.L9-.L13
	.long	.L9-.L13
	.long	.L9-.L13
	.long	.L11-.L13
	.long	.L9-.L13
	.long	.L9-.L13
	.long	.L9-.L13
	.long	.L11-.L13
	.long	.L9-.L13
	.long	.L9-.L13
	.long	.L9-.L13
	.long	.L9-.L13
	.long	.L9-.L13
	.long	.L9-.L13
	.long	.L9-.L13
	.long	.L11-.L13
	.long	.L9-.L13
	.long	.L9-.L13
	.long	.L9-.L13
	.long	.L11-.L13
	.long	.L9-.L13
	.long	.L11-.L13
	.long	.L12-.L13
	.text
	.p2align 4,,10
	.p2align 3
.L41:
	cmp	al, 34
	je	.L11
	cmp	al, 47
	je	.L11
.L9:
	mov	DWORD PTR [rbx], ebp
	mov	r13d, DWORD PTR JSMN_ERROR_INVAL[rip]
.L1:
	pop	rbx
	.cfi_remember_state
	.cfi_def_cfa_offset 40
	mov	eax, r13d
	pop	rbp
	.cfi_def_cfa_offset 32
	pop	r12
	.cfi_def_cfa_offset 24
	pop	r13
	.cfi_def_cfa_offset 16
	pop	r14
	.cfi_def_cfa_offset 8
	ret
.L12:
	.cfi_restore_state
	lea	eax, 2[r9]
	movsx	r9, r9d
	mov	DWORD PTR [rbx], eax
	lea	r14, 6[r9]
	cdqe
.L14:
	mov	r13d, eax
	mov	r9d, eax
	cmp	rdx, rax
	jbe	.L8
	movzx	r10d, BYTE PTR [rsi+rax]
	test	r10b, r10b
	je	.L8
	mov	r11d, r10d
	and	r11d, -33
	sub	r11d, 65
	cmp	r11b, 5
	jbe	.L15
	sub	r10d, 48
	cmp	r10b, 9
	ja	.L9
.L15:
	lea	r9d, 1[r13]
	add	rax, 1
	mov	DWORD PTR [rbx], r9d
	cmp	rax, r14
	jne	.L14
	movsx	rax, r9d
	mov	DWORD PTR [rbx], r9d
	cmp	rdx, rax
	ja	.L2
.L18:
	mov	r13d, DWORD PTR JSMN_ERROR_PART[rip]
	mov	DWORD PTR [rbx], ebp
	pop	rbx
	.cfi_remember_state
	.cfi_def_cfa_offset 40
	pop	rbp
	.cfi_def_cfa_offset 32
	mov	eax, r13d
	pop	r12
	.cfi_def_cfa_offset 24
	pop	r13
	.cfi_def_cfa_offset 16
	pop	r14
	.cfi_def_cfa_offset 8
	ret
.L11:
	.cfi_restore_state
	add	r9d, 2
	movsx	rax, r9d
	jmp	.L8
	.p2align 4,,10
	.p2align 3
.L40:
	xor	r13d, r13d
	test	rcx, rcx
	je	.L1
	mov	rdi, rbx
	mov	rdx, r8
	mov	rsi, rcx
	call	jsmn_alloc_token@PLT
	mov	rdi, rax
	test	rax, rax
	je	.L42
	mov	ecx, DWORD PTR [rbx]
	mov	esi, DWORD PTR JSMN_STRING[rip]
	mov	edx, r12d
	call	jsmn_fill_token@PLT
	jmp	.L1
.L42:
	mov	DWORD PTR [rbx], ebp
	mov	r13d, DWORD PTR JSMN_ERROR_NOMEM[rip]
	jmp	.L1
	.cfi_endproc
.LFE0:
	.size	jsmn_parse_string, .-jsmn_parse_string
	.comm	JSMN_STRING,4,4
	.comm	JSMN_ERROR_PART,4,4
	.comm	JSMN_ERROR_NOMEM,4,4
	.comm	JSMN_ERROR_INVAL,4,4
	.ident	"GCC: (Ubuntu 9.4.0-1ubuntu1~20.04.2) 9.4.0"
	.section	.note.GNU-stack,"",@progbits
	.section	.note.gnu.property,"a"
	.align 8
	.long	 1f - 0f
	.long	 4f - 1f
	.long	 5
0:
	.string	 "GNU"
1:
	.align 8
	.long	 0xc0000002
	.long	 3f - 2f
2:
	.long	 0x3
3:
	.align 8
4:

	.arch armv5t
	.eabi_attribute 20, 1
	.eabi_attribute 21, 1
	.eabi_attribute 23, 3
	.eabi_attribute 24, 1
	.eabi_attribute 25, 1
	.eabi_attribute 26, 2
	.eabi_attribute 30, 2
	.eabi_attribute 34, 0
	.eabi_attribute 18, 4
	.file	"extr_jsmn.c_jsmn_parse_string.c"
	.text
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	jsmn_parse_string, %function
jsmn_parse_string:
	@ args = 4, pretend = 0, frame = 0
	@ frame_needed = 0, uses_anonymous_args = 0
	push	{r4, r5, r6, r7, r8, r9, r10, lr}
	ldr	r6, [r0]
	mov	r4, r0
	add	r5, r6, #1
	cmp	r2, r5
	movhi	lr, r5
	movhi	ip, r5
	str	r5, [r0]
	bhi	.L2
	b	.L18
.L6:
	ldr	ip, [r4]
	add	ip, ip, #1
	mov	lr, ip
.L8:
	cmp	r2, lr
	str	ip, [r4]
	bls	.L18
.L2:
	ldrb	lr, [r1, lr]	@ zero_extendqisi2
	cmp	lr, #0
	beq	.L18
	cmp	lr, #34
	beq	.L34
	cmp	lr, #92
	bne	.L6
	add	lr, ip, #1
	cmp	lr, r2
	bcs	.L6
	str	lr, [r4]
	ldrb	lr, [r1, lr]	@ zero_extendqisi2
	cmp	lr, #117
	bhi	.L9
	cmp	lr, #91
	bls	.L35
	sub	lr, lr, #92
	cmp	lr, #25
	ldrls	pc, [pc, lr, asl #2]
	b	.L9
.L13:
	.word	.L11
	.word	.L9
	.word	.L9
	.word	.L9
	.word	.L9
	.word	.L9
	.word	.L11
	.word	.L9
	.word	.L9
	.word	.L9
	.word	.L11
	.word	.L9
	.word	.L9
	.word	.L9
	.word	.L9
	.word	.L9
	.word	.L9
	.word	.L9
	.word	.L11
	.word	.L9
	.word	.L9
	.word	.L9
	.word	.L11
	.word	.L9
	.word	.L11
	.word	.L12
.L35:
	cmp	lr, #34
	beq	.L11
	cmp	lr, #47
	beq	.L11
.L9:
	ldr	r3, .L37
	str	r6, [r4]
	ldr	r0, [r3]
	pop	{r4, r5, r6, r7, r8, r9, r10, pc}
.L12:
	add	r7, ip, #2
	add	ip, ip, #6
	mov	lr, ip
	str	r7, [r4]
.L14:
	cmp	r2, r7
	bls	.L22
	ldrb	r0, [r1, r7]	@ zero_extendqisi2
	bic	r8, r0, #32
	cmp	r0, #0
	sub	r8, r8, #65
	sub	r9, r0, #48
	beq	.L22
	cmp	r8, #5
	cmphi	r9, #9
	add	r7, r7, #1
	bhi	.L9
	cmp	r7, ip
	str	r7, [r4]
	bne	.L14
	cmp	r2, lr
	str	ip, [r4]
	bhi	.L2
.L18:
	ldr	r3, .L37+4
	str	r6, [r4]
	ldr	r0, [r3]
	pop	{r4, r5, r6, r7, r8, r9, r10, pc}
.L11:
	add	ip, ip, #2
	mov	lr, ip
	b	.L8
.L34:
	cmp	r3, #0
	beq	.L31
	mov	r1, r3
	mov	r0, r4
	ldr	r2, [sp, #32]
	bl	jsmn_alloc_token
	cmp	r0, #0
	beq	.L36
	ldr	r1, .L37+8
	mov	r2, r5
	ldr	r3, [r4]
	ldr	r1, [r1]
	bl	jsmn_fill_token
.L31:
	mov	r0, #0
	pop	{r4, r5, r6, r7, r8, r9, r10, pc}
.L22:
	mov	lr, r7
	mov	ip, r7
	b	.L8
.L36:
	ldr	r3, .L37+12
	str	r6, [r4]
	ldr	r0, [r3]
	pop	{r4, r5, r6, r7, r8, r9, r10, pc}
.L38:
	.align	2
.L37:
	.word	JSMN_ERROR_INVAL
	.word	JSMN_ERROR_PART
	.word	JSMN_STRING
	.word	JSMN_ERROR_NOMEM
	.size	jsmn_parse_string, .-jsmn_parse_string
	.comm	JSMN_STRING,4,4
	.comm	JSMN_ERROR_PART,4,4
	.comm	JSMN_ERROR_NOMEM,4,4
	.comm	JSMN_ERROR_INVAL,4,4
	.ident	"GCC: (Ubuntu 9.4.0-1ubuntu1~20.04.2) 9.4.0"
	.section	.note.GNU-stack,"",%progbits
