	.file	"394081.c"
	.intel_syntax noprefix
	.text
	.type	isupper, @function
isupper:
.LFB0:
	.cfi_startproc
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	mov	eax, edi
	mov	BYTE PTR -4[rbp], al
	cmp	BYTE PTR -4[rbp], 64
	jle	.L2
	cmp	BYTE PTR -4[rbp], 90
	jg	.L2
	mov	eax, 1
	jmp	.L4
.L2:
	mov	eax, 0
.L4:
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE0:
	.size	isupper, .-isupper
	.type	isalpha, @function
isalpha:
.LFB1:
	.cfi_startproc
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	mov	eax, edi
	mov	BYTE PTR -4[rbp], al
	cmp	BYTE PTR -4[rbp], 64
	jle	.L6
	cmp	BYTE PTR -4[rbp], 90
	jle	.L7
.L6:
	cmp	BYTE PTR -4[rbp], 96
	jle	.L8
	cmp	BYTE PTR -4[rbp], 122
	jg	.L8
.L7:
	mov	eax, 1
	jmp	.L10
.L8:
	mov	eax, 0
.L10:
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE1:
	.size	isalpha, .-isalpha
	.type	isspace, @function
isspace:
.LFB2:
	.cfi_startproc
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	mov	eax, edi
	mov	BYTE PTR -4[rbp], al
	cmp	BYTE PTR -4[rbp], 32
	je	.L12
	cmp	BYTE PTR -4[rbp], 9
	je	.L12
	cmp	BYTE PTR -4[rbp], 10
	je	.L12
	cmp	BYTE PTR -4[rbp], 10
	jne	.L13
.L12:
	mov	eax, 1
	jmp	.L15
.L13:
	mov	eax, 0
.L15:
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE2:
	.size	isspace, .-isspace
	.type	isdigit, @function
isdigit:
.LFB3:
	.cfi_startproc
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	mov	eax, edi
	mov	BYTE PTR -4[rbp], al
	cmp	BYTE PTR -4[rbp], 47
	jle	.L17
	cmp	BYTE PTR -4[rbp], 57
	jg	.L17
	mov	eax, 1
	jmp	.L19
.L17:
	mov	eax, 0
.L19:
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE3:
	.size	isdigit, .-isdigit
	.globl	strtol
	.type	strtol, @function
strtol:
.LFB4:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	push	r15
	push	r14
	push	r13
	push	r12
	push	rbx
	sub	rsp, 32
	.cfi_offset 15, -24
	.cfi_offset 14, -32
	.cfi_offset 13, -40
	.cfi_offset 12, -48
	.cfi_offset 3, -56
	mov	QWORD PTR -48[rbp], rdi
	mov	QWORD PTR -56[rbp], rsi
	mov	r13d, edx
	mov	rbx, QWORD PTR -48[rbp]
	mov	DWORD PTR -64[rbp], 0
.L21:
	mov	rax, rbx
	lea	rbx, 1[rax]
	movzx	eax, BYTE PTR [rax]
	movsx	r12d, al
	mov	eax, r12d
	movsx	eax, al
	mov	edi, eax
	call	isspace
	test	eax, eax
	jne	.L21
	cmp	r12d, 45
	jne	.L22
	mov	DWORD PTR -64[rbp], 1
	mov	rax, rbx
	lea	rbx, 1[rax]
	movzx	eax, BYTE PTR [rax]
	movsx	r12d, al
	jmp	.L23
.L22:
	cmp	r12d, 43
	jne	.L23
	mov	rax, rbx
	lea	rbx, 1[rax]
	movzx	eax, BYTE PTR [rax]
	movsx	r12d, al
.L23:
	test	r13d, r13d
	je	.L24
	cmp	r13d, 16
	jne	.L25
.L24:
	cmp	r12d, 48
	jne	.L25
	movzx	eax, BYTE PTR [rbx]
	cmp	al, 120
	je	.L26
	movzx	eax, BYTE PTR [rbx]
	cmp	al, 88
	jne	.L25
.L26:
	lea	rax, 1[rbx]
	movzx	eax, BYTE PTR [rax]
	movsx	r12d, al
	add	rbx, 2
	mov	r13d, 16
	jmp	.L27
.L25:
	test	r13d, r13d
	je	.L28
	cmp	r13d, 2
	jne	.L27
.L28:
	cmp	r12d, 48
	jne	.L27
	movzx	eax, BYTE PTR [rbx]
	cmp	al, 98
	je	.L29
	movzx	eax, BYTE PTR [rbx]
	cmp	al, 66
	jne	.L27
.L29:
	lea	rax, 1[rbx]
	movzx	eax, BYTE PTR [rax]
	movsx	r12d, al
	add	rbx, 2
	mov	r13d, 2
.L27:
	test	r13d, r13d
	jne	.L30
	cmp	r12d, 48
	jne	.L31
	mov	eax, 8
	jmp	.L32
.L31:
	mov	eax, 10
.L32:
	mov	r13d, eax
.L30:
	cmp	DWORD PTR -64[rbp], 0
	je	.L33
	movabs	rax, -9223372036854775808
	jmp	.L34
.L33:
	movabs	rax, 9223372036854775807
.L34:
	mov	r15, rax
	movsx	rcx, r13d
	mov	rax, r15
	mov	edx, 0
	div	rcx
	mov	rax, rdx
	mov	DWORD PTR -68[rbp], eax
	movsx	rsi, r13d
	mov	rax, r15
	mov	edx, 0
	div	rsi
	mov	r15, rax
	mov	r14d, 0
	mov	DWORD PTR -60[rbp], 0
.L45:
	mov	eax, r12d
	movsx	eax, al
	mov	edi, eax
	call	isdigit
	test	eax, eax
	je	.L35
	sub	r12d, 48
	jmp	.L36
.L35:
	mov	eax, r12d
	movsx	eax, al
	mov	edi, eax
	call	isalpha
	test	eax, eax
	je	.L54
	mov	eax, r12d
	movsx	eax, al
	mov	edi, eax
	call	isupper
	test	eax, eax
	je	.L38
	mov	eax, 55
	jmp	.L39
.L38:
	mov	eax, 87
.L39:
	sub	r12d, eax
.L36:
	cmp	r12d, r13d
	jge	.L55
	cmp	DWORD PTR -60[rbp], 0
	js	.L42
	cmp	r14, r15
	ja	.L42
	cmp	r14, r15
	jne	.L43
	cmp	r12d, DWORD PTR -68[rbp]
	jle	.L43
.L42:
	mov	DWORD PTR -60[rbp], -1
	jmp	.L44
.L43:
	mov	DWORD PTR -60[rbp], 1
	movsx	rax, r13d
	imul	r14, rax
	movsx	rax, r12d
	add	r14, rax
.L44:
	mov	rax, rbx
	lea	rbx, 1[rax]
	movzx	eax, BYTE PTR [rax]
	movsx	r12d, al
	jmp	.L45
.L54:
	nop
	jmp	.L40
.L55:
	nop
.L40:
	cmp	DWORD PTR -60[rbp], 0
	jns	.L46
	cmp	DWORD PTR -64[rbp], 0
	je	.L47
	movabs	rax, -9223372036854775808
	jmp	.L48
.L47:
	movabs	rax, 9223372036854775807
.L48:
	mov	r14, rax
	jmp	.L49
.L46:
	cmp	DWORD PTR -64[rbp], 0
	je	.L49
	neg	r14
.L49:
	cmp	QWORD PTR -56[rbp], 0
	je	.L50
	cmp	DWORD PTR -60[rbp], 0
	je	.L51
	lea	rax, -1[rbx]
	jmp	.L52
.L51:
	mov	rax, QWORD PTR -48[rbp]
.L52:
	mov	rdx, QWORD PTR -56[rbp]
	mov	QWORD PTR [rdx], rax
.L50:
	mov	rax, r14
	add	rsp, 32
	pop	rbx
	pop	r12
	pop	r13
	pop	r14
	pop	r15
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE4:
	.size	strtol, .-strtol
	.globl	strtoul
	.type	strtoul, @function
strtoul:
.LFB5:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	push	r15
	push	r14
	push	r13
	push	r12
	push	rbx
	sub	rsp, 32
	.cfi_offset 15, -24
	.cfi_offset 14, -32
	.cfi_offset 13, -40
	.cfi_offset 12, -48
	.cfi_offset 3, -56
	mov	QWORD PTR -48[rbp], rdi
	mov	QWORD PTR -56[rbp], rsi
	mov	r13d, edx
	mov	rbx, QWORD PTR -48[rbp]
	mov	DWORD PTR -60[rbp], 0
.L57:
	mov	rax, rbx
	lea	rbx, 1[rax]
	movzx	eax, BYTE PTR [rax]
	movsx	r12d, al
	mov	eax, r12d
	movsx	eax, al
	mov	edi, eax
	call	isspace
	test	eax, eax
	jne	.L57
	cmp	r12d, 45
	jne	.L58
	mov	DWORD PTR -60[rbp], 1
	mov	rax, rbx
	lea	rbx, 1[rax]
	movzx	eax, BYTE PTR [rax]
	movsx	r12d, al
	jmp	.L59
.L58:
	cmp	r12d, 43
	jne	.L59
	mov	rax, rbx
	lea	rbx, 1[rax]
	movzx	eax, BYTE PTR [rax]
	movsx	r12d, al
.L59:
	test	r13d, r13d
	je	.L60
	cmp	r13d, 16
	jne	.L61
.L60:
	cmp	r12d, 48
	jne	.L61
	movzx	eax, BYTE PTR [rbx]
	cmp	al, 120
	je	.L62
	movzx	eax, BYTE PTR [rbx]
	cmp	al, 88
	jne	.L61
.L62:
	lea	rax, 1[rbx]
	movzx	eax, BYTE PTR [rax]
	movsx	r12d, al
	add	rbx, 2
	mov	r13d, 16
	jmp	.L63
.L61:
	test	r13d, r13d
	je	.L64
	cmp	r13d, 2
	jne	.L63
.L64:
	cmp	r12d, 48
	jne	.L63
	movzx	eax, BYTE PTR [rbx]
	cmp	al, 98
	je	.L65
	movzx	eax, BYTE PTR [rbx]
	cmp	al, 66
	jne	.L63
.L65:
	lea	rax, 1[rbx]
	movzx	eax, BYTE PTR [rax]
	movsx	r12d, al
	add	rbx, 2
	mov	r13d, 2
.L63:
	test	r13d, r13d
	jne	.L66
	cmp	r12d, 48
	jne	.L67
	mov	eax, 8
	jmp	.L68
.L67:
	mov	eax, 10
.L68:
	mov	r13d, eax
.L66:
	movsx	rsi, r13d
	mov	rax, -1
	mov	edx, 0
	div	rsi
	mov	QWORD PTR -72[rbp], rax
	movsx	rcx, r13d
	mov	rax, -1
	mov	edx, 0
	div	rcx
	mov	rax, rdx
	mov	DWORD PTR -64[rbp], eax
	mov	r14d, 0
	mov	r15d, 0
.L79:
	mov	eax, r12d
	movsx	eax, al
	mov	edi, eax
	call	isdigit
	test	eax, eax
	je	.L69
	sub	r12d, 48
	jmp	.L70
.L69:
	mov	eax, r12d
	movsx	eax, al
	mov	edi, eax
	call	isalpha
	test	eax, eax
	je	.L86
	mov	eax, r12d
	movsx	eax, al
	mov	edi, eax
	call	isupper
	test	eax, eax
	je	.L72
	mov	eax, 55
	jmp	.L73
.L72:
	mov	eax, 87
.L73:
	sub	r12d, eax
.L70:
	cmp	r12d, r13d
	jge	.L87
	test	r15d, r15d
	js	.L76
	mov	rax, QWORD PTR -72[rbp]
	cmp	r14, rax
	ja	.L76
	cmp	r14, rax
	jne	.L77
	cmp	r12d, DWORD PTR -64[rbp]
	jle	.L77
.L76:
	mov	r15d, -1
	jmp	.L78
.L77:
	mov	r15d, 1
	movsx	rax, r13d
	imul	r14, rax
	movsx	rax, r12d
	add	r14, rax
.L78:
	mov	rax, rbx
	lea	rbx, 1[rax]
	movzx	eax, BYTE PTR [rax]
	movsx	r12d, al
	jmp	.L79
.L86:
	nop
	jmp	.L74
.L87:
	nop
.L74:
	test	r15d, r15d
	jns	.L80
	mov	r14, -1
	jmp	.L81
.L80:
	cmp	DWORD PTR -60[rbp], 0
	je	.L81
	neg	r14
.L81:
	cmp	QWORD PTR -56[rbp], 0
	je	.L82
	test	r15d, r15d
	je	.L83
	lea	rax, -1[rbx]
	jmp	.L84
.L83:
	mov	rax, QWORD PTR -48[rbp]
.L84:
	mov	rdx, QWORD PTR -56[rbp]
	mov	QWORD PTR [rdx], rax
.L82:
	mov	rax, r14
	add	rsp, 32
	pop	rbx
	pop	r12
	pop	r13
	pop	r14
	pop	r15
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE5:
	.size	strtoul, .-strtoul
	.ident	"GCC: (Ubuntu 10.5.0-1ubuntu1~20.04) 10.5.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, 6
	.eabi_attribute 34, 0
	.eabi_attribute 18, 4
	.file	"394081.c"
	.text
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	isupper, %function
isupper:
	@ args = 0, pretend = 0, frame = 8
	@ frame_needed = 1, uses_anonymous_args = 0
	@ link register save eliminated.
	str	fp, [sp, #-4]!
	add	fp, sp, #0
	sub	sp, sp, #12
	mov	r3, r0
	strb	r3, [fp, #-5]
	ldrb	r3, [fp, #-5]	@ zero_extendqisi2
	cmp	r3, #64
	bls	.L2
	ldrb	r3, [fp, #-5]	@ zero_extendqisi2
	cmp	r3, #90
	bhi	.L2
	mov	r3, #1
	b	.L4
.L2:
	mov	r3, #0
.L4:
	mov	r0, r3
	add	sp, fp, #0
	@ sp needed
	ldr	fp, [sp], #4
	bx	lr
	.size	isupper, .-isupper
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	isalpha, %function
isalpha:
	@ args = 0, pretend = 0, frame = 8
	@ frame_needed = 1, uses_anonymous_args = 0
	@ link register save eliminated.
	str	fp, [sp, #-4]!
	add	fp, sp, #0
	sub	sp, sp, #12
	mov	r3, r0
	strb	r3, [fp, #-5]
	ldrb	r3, [fp, #-5]	@ zero_extendqisi2
	cmp	r3, #64
	bls	.L6
	ldrb	r3, [fp, #-5]	@ zero_extendqisi2
	cmp	r3, #90
	bls	.L7
.L6:
	ldrb	r3, [fp, #-5]	@ zero_extendqisi2
	cmp	r3, #96
	bls	.L8
	ldrb	r3, [fp, #-5]	@ zero_extendqisi2
	cmp	r3, #122
	bhi	.L8
.L7:
	mov	r3, #1
	b	.L10
.L8:
	mov	r3, #0
.L10:
	mov	r0, r3
	add	sp, fp, #0
	@ sp needed
	ldr	fp, [sp], #4
	bx	lr
	.size	isalpha, .-isalpha
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	isspace, %function
isspace:
	@ args = 0, pretend = 0, frame = 8
	@ frame_needed = 1, uses_anonymous_args = 0
	@ link register save eliminated.
	str	fp, [sp, #-4]!
	add	fp, sp, #0
	sub	sp, sp, #12
	mov	r3, r0
	strb	r3, [fp, #-5]
	ldrb	r3, [fp, #-5]	@ zero_extendqisi2
	cmp	r3, #32
	beq	.L12
	ldrb	r3, [fp, #-5]	@ zero_extendqisi2
	cmp	r3, #9
	beq	.L12
	ldrb	r3, [fp, #-5]	@ zero_extendqisi2
	cmp	r3, #10
	beq	.L12
	ldrb	r3, [fp, #-5]	@ zero_extendqisi2
	cmp	r3, #10
	bne	.L13
.L12:
	mov	r3, #1
	b	.L15
.L13:
	mov	r3, #0
.L15:
	mov	r0, r3
	add	sp, fp, #0
	@ sp needed
	ldr	fp, [sp], #4
	bx	lr
	.size	isspace, .-isspace
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	isdigit, %function
isdigit:
	@ args = 0, pretend = 0, frame = 8
	@ frame_needed = 1, uses_anonymous_args = 0
	@ link register save eliminated.
	str	fp, [sp, #-4]!
	add	fp, sp, #0
	sub	sp, sp, #12
	mov	r3, r0
	strb	r3, [fp, #-5]
	ldrb	r3, [fp, #-5]	@ zero_extendqisi2
	cmp	r3, #47
	bls	.L17
	ldrb	r3, [fp, #-5]	@ zero_extendqisi2
	cmp	r3, #57
	bhi	.L17
	mov	r3, #1
	b	.L19
.L17:
	mov	r3, #0
.L19:
	mov	r0, r3
	add	sp, fp, #0
	@ sp needed
	ldr	fp, [sp], #4
	bx	lr
	.size	isdigit, .-isdigit
	.global	__aeabi_uidivmod
	.global	__aeabi_uidiv
	.align	2
	.global	strtol
	.syntax unified
	.arm
	.fpu softvfp
	.type	strtol, %function
strtol:
	@ args = 0, pretend = 0, frame = 16
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, r5, r6, r7, r8, r9, r10, fp, lr}
	add	fp, sp, #32
	sub	sp, sp, #20
	str	r0, [fp, #-40]
	str	r1, [fp, #-44]
	mov	r7, r2
	ldr	r4, [fp, #-40]
	mov	r9, #0
.L21:
	mov	r3, r4
	add	r4, r3, #1
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r5, r3
	and	r3, r5, #255
	mov	r0, r3
	bl	isspace
	mov	r3, r0
	cmp	r3, #0
	bne	.L21
	cmp	r5, #45
	bne	.L22
	mov	r9, #1
	mov	r3, r4
	add	r4, r3, #1
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r5, r3
	b	.L23
.L22:
	cmp	r5, #43
	bne	.L23
	mov	r3, r4
	add	r4, r3, #1
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r5, r3
.L23:
	cmp	r7, #0
	beq	.L24
	cmp	r7, #16
	bne	.L25
.L24:
	cmp	r5, #48
	bne	.L25
	ldrb	r3, [r4]	@ zero_extendqisi2
	cmp	r3, #120
	beq	.L26
	ldrb	r3, [r4]	@ zero_extendqisi2
	cmp	r3, #88
	bne	.L25
.L26:
	add	r3, r4, #1
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r5, r3
	add	r4, r4, #2
	mov	r7, #16
	b	.L27
.L25:
	cmp	r7, #0
	beq	.L28
	cmp	r7, #2
	bne	.L27
.L28:
	cmp	r5, #48
	bne	.L27
	ldrb	r3, [r4]	@ zero_extendqisi2
	cmp	r3, #98
	beq	.L29
	ldrb	r3, [r4]	@ zero_extendqisi2
	cmp	r3, #66
	bne	.L27
.L29:
	add	r3, r4, #1
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r5, r3
	add	r4, r4, #2
	mov	r7, #2
.L27:
	cmp	r7, #0
	bne	.L30
	cmp	r5, #48
	bne	.L31
	mov	r3, #8
	b	.L32
.L31:
	mov	r3, #10
.L32:
	mov	r7, r3
.L30:
	cmp	r9, #0
	beq	.L33
	mov	r3, #-2147483648
	b	.L34
.L33:
	mvn	r3, #-2147483648
.L34:
	mov	r10, r3
	mov	r3, r7
	mov	r1, r3
	mov	r0, r10
	bl	__aeabi_uidivmod
	mov	r3, r1
	str	r3, [fp, #-48]
	mov	r3, r7
	mov	r1, r3
	mov	r0, r10
	bl	__aeabi_uidiv
	mov	r3, r0
	mov	r10, r3
	mov	r6, #0
	mov	r8, #0
.L45:
	and	r3, r5, #255
	mov	r0, r3
	bl	isdigit
	mov	r3, r0
	cmp	r3, #0
	beq	.L35
	sub	r5, r5, #48
	b	.L36
.L35:
	and	r3, r5, #255
	mov	r0, r3
	bl	isalpha
	mov	r3, r0
	cmp	r3, #0
	beq	.L54
	and	r3, r5, #255
	mov	r0, r3
	bl	isupper
	mov	r3, r0
	cmp	r3, #0
	beq	.L38
	mov	r3, #55
	b	.L39
.L38:
	mov	r3, #87
.L39:
	sub	r5, r5, r3
.L36:
	cmp	r5, r7
	bge	.L55
	cmp	r8, #0
	blt	.L42
	cmp	r6, r10
	bhi	.L42
	cmp	r6, r10
	bne	.L43
	ldr	r3, [fp, #-48]
	cmp	r5, r3
	ble	.L43
.L42:
	mvn	r8, #0
	b	.L44
.L43:
	mov	r8, #1
	mov	r3, r7
	mul	r6, r3, r6
	mov	r3, r5
	add	r6, r6, r3
.L44:
	mov	r3, r4
	add	r4, r3, #1
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r5, r3
	b	.L45
.L54:
	nop
	b	.L40
.L55:
	nop
.L40:
	cmp	r8, #0
	bge	.L46
	cmp	r9, #0
	beq	.L47
	mov	r3, #-2147483648
	b	.L48
.L47:
	mvn	r3, #-2147483648
.L48:
	mov	r6, r3
	b	.L49
.L46:
	cmp	r9, #0
	beq	.L49
	rsb	r6, r6, #0
.L49:
	ldr	r3, [fp, #-44]
	cmp	r3, #0
	beq	.L50
	cmp	r8, #0
	beq	.L51
	sub	r3, r4, #1
	b	.L52
.L51:
	ldr	r3, [fp, #-40]
.L52:
	ldr	r2, [fp, #-44]
	str	r3, [r2]
.L50:
	mov	r3, r6
	mov	r0, r3
	sub	sp, fp, #32
	@ sp needed
	pop	{r4, r5, r6, r7, r8, r9, r10, fp, pc}
	.size	strtol, .-strtol
	.align	2
	.global	strtoul
	.syntax unified
	.arm
	.fpu softvfp
	.type	strtoul, %function
strtoul:
	@ args = 0, pretend = 0, frame = 16
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, r5, r6, r7, r8, r9, r10, fp, lr}
	add	fp, sp, #32
	sub	sp, sp, #20
	str	r0, [fp, #-40]
	str	r1, [fp, #-44]
	mov	r7, r2
	ldr	r4, [fp, #-40]
	mov	r10, #0
.L57:
	mov	r3, r4
	add	r4, r3, #1
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r5, r3
	and	r3, r5, #255
	mov	r0, r3
	bl	isspace
	mov	r3, r0
	cmp	r3, #0
	bne	.L57
	cmp	r5, #45
	bne	.L58
	mov	r10, #1
	mov	r3, r4
	add	r4, r3, #1
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r5, r3
	b	.L59
.L58:
	cmp	r5, #43
	bne	.L59
	mov	r3, r4
	add	r4, r3, #1
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r5, r3
.L59:
	cmp	r7, #0
	beq	.L60
	cmp	r7, #16
	bne	.L61
.L60:
	cmp	r5, #48
	bne	.L61
	ldrb	r3, [r4]	@ zero_extendqisi2
	cmp	r3, #120
	beq	.L62
	ldrb	r3, [r4]	@ zero_extendqisi2
	cmp	r3, #88
	bne	.L61
.L62:
	add	r3, r4, #1
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r5, r3
	add	r4, r4, #2
	mov	r7, #16
	b	.L63
.L61:
	cmp	r7, #0
	beq	.L64
	cmp	r7, #2
	bne	.L63
.L64:
	cmp	r5, #48
	bne	.L63
	ldrb	r3, [r4]	@ zero_extendqisi2
	cmp	r3, #98
	beq	.L65
	ldrb	r3, [r4]	@ zero_extendqisi2
	cmp	r3, #66
	bne	.L63
.L65:
	add	r3, r4, #1
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r5, r3
	add	r4, r4, #2
	mov	r7, #2
.L63:
	cmp	r7, #0
	bne	.L66
	cmp	r5, #48
	bne	.L67
	mov	r3, #8
	b	.L68
.L67:
	mov	r3, #10
.L68:
	mov	r7, r3
.L66:
	mov	r3, r7
	mov	r1, r3
	mvn	r0, #0
	bl	__aeabi_uidiv
	mov	r3, r0
	mov	r9, r3
	mov	r2, r7
	mvn	r3, #0
	mov	r1, r2
	mov	r0, r3
	bl	__aeabi_uidivmod
	mov	r3, r1
	str	r3, [fp, #-48]
	mov	r6, #0
	mov	r8, #0
.L79:
	and	r3, r5, #255
	mov	r0, r3
	bl	isdigit
	mov	r3, r0
	cmp	r3, #0
	beq	.L69
	sub	r5, r5, #48
	b	.L70
.L69:
	and	r3, r5, #255
	mov	r0, r3
	bl	isalpha
	mov	r3, r0
	cmp	r3, #0
	beq	.L86
	and	r3, r5, #255
	mov	r0, r3
	bl	isupper
	mov	r3, r0
	cmp	r3, #0
	beq	.L72
	mov	r3, #55
	b	.L73
.L72:
	mov	r3, #87
.L73:
	sub	r5, r5, r3
.L70:
	cmp	r5, r7
	bge	.L87
	cmp	r8, #0
	blt	.L76
	cmp	r6, r9
	bhi	.L76
	cmp	r6, r9
	bne	.L77
	ldr	r3, [fp, #-48]
	cmp	r5, r3
	ble	.L77
.L76:
	mvn	r8, #0
	b	.L78
.L77:
	mov	r8, #1
	mov	r3, r7
	mul	r6, r3, r6
	mov	r3, r5
	add	r6, r6, r3
.L78:
	mov	r3, r4
	add	r4, r3, #1
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r5, r3
	b	.L79
.L86:
	nop
	b	.L74
.L87:
	nop
.L74:
	cmp	r8, #0
	bge	.L80
	mvn	r6, #0
	b	.L81
.L80:
	cmp	r10, #0
	beq	.L81
	rsb	r6, r6, #0
.L81:
	ldr	r3, [fp, #-44]
	cmp	r3, #0
	beq	.L82
	cmp	r8, #0
	beq	.L83
	sub	r3, r4, #1
	b	.L84
.L83:
	ldr	r3, [fp, #-40]
.L84:
	ldr	r2, [fp, #-44]
	str	r3, [r2]
.L82:
	mov	r3, r6
	mov	r0, r3
	sub	sp, fp, #32
	@ sp needed
	pop	{r4, r5, r6, r7, r8, r9, r10, fp, pc}
	.size	strtoul, .-strtoul
	.ident	"GCC: (Ubuntu 9.4.0-1ubuntu1~20.04.2) 9.4.0"
	.section	.note.GNU-stack,"",%progbits
