	.file	"extr_crypto-base64.c_base64_decode.c"
	.intel_syntax noprefix
	.text
	.p2align 4
	.globl	base64_decode
	.type	base64_decode, @function
base64_decode:
.LFB0:
	.cfi_startproc
	endbr64
	xor	eax, eax
	xor	r11d, r11d
	lea	r9, rstr.1921[rip]
	cmp	rax, rcx
	jnb	.L44
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	push	rbx
	.cfi_def_cfa_offset 24
	.cfi_offset 3, -24
	.p2align 4,,10
	.p2align 3
.L12:
	movzx	r10d, BYTE PTR [rdx+rax]
	mov	r8, r10
	movzx	r10d, BYTE PTR [r9+r10]
	cmp	r10d, 64
	jbe	.L45
	add	rax, 1
	cmp	rcx, rax
	jne	.L12
.L3:
	cmp	r11, rsi
	jnb	.L1
.L52:
	mov	BYTE PTR [rdi+r11], 0
.L1:
	mov	rax, r11
	pop	rbx
	.cfi_remember_state
	.cfi_def_cfa_offset 16
	pop	rbp
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L45:
	.cfi_restore_state
	cmp	r8b, 61
	je	.L3
	lea	r8, 1[rax]
	cmp	rcx, rax
	ja	.L42
	jmp	.L3
	.p2align 4,,10
	.p2align 3
.L47:
	movzx	eax, BYTE PTR [rdx+r8]
	mov	rbx, rax
	movzx	eax, BYTE PTR [r9+rax]
	cmp	eax, 64
	jbe	.L46
	add	r8, 1
.L42:
	cmp	rcx, r8
	ja	.L47
	jmp	.L3
	.p2align 4,,10
	.p2align 3
.L46:
	cmp	bl, 61
	je	.L3
	lea	rbp, 1[r8]
	cmp	r8, rcx
	jnb	.L3
	cmp	r11, rsi
	jnb	.L7
	mov	ebx, eax
	sal	r10d, 2
	shr	ebx, 4
	movzx	r10d, r10b
	and	ebx, 3
	or	r10d, ebx
	mov	BYTE PTR [rdi+r11], r10b
	add	r11, 1
.L7:
	cmp	rcx, rbp
	jbe	.L3
	movzx	ebp, BYTE PTR [rdx+rbp]
	mov	rbx, rbp
	jmp	.L8
	.p2align 4,,10
	.p2align 3
.L49:
	movzx	r10d, BYTE PTR [r9+rbp]
	cmp	r10d, 64
	jbe	.L48
.L8:
	cmp	bl, 61
	jne	.L49
	jmp	.L3
	.p2align 4,,10
	.p2align 3
.L48:
	lea	rbx, 2[r8]
	cmp	r11, rsi
	jnb	.L17
	sal	eax, 4
	movzx	ebp, al
	mov	eax, r10d
	shr	eax, 2
	and	eax, 15
	or	eax, ebp
	mov	BYTE PTR [rdi+r11], al
	add	r11, 1
.L17:
	cmp	rcx, rbx
	jbe	.L3
	movzx	ebp, BYTE PTR [rdx+rbx]
	mov	rax, rbp
	jmp	.L10
	.p2align 4,,10
	.p2align 3
.L51:
	movzx	ebx, BYTE PTR [r9+rbp]
	cmp	ebx, 64
	jbe	.L50
.L10:
	cmp	al, 61
	jne	.L51
	jmp	.L3
	.p2align 4,,10
	.p2align 3
.L50:
	lea	rax, 3[r8]
	cmp	r11, rsi
	jnb	.L15
	sal	r10d, 6
	movzx	r10d, r10b
	or	ebx, r10d
	mov	BYTE PTR [rdi+r11], bl
	add	r11, 1
.L15:
	cmp	rcx, rax
	jbe	.L3
	cmp	rax, rcx
	jb	.L12
	cmp	r11, rsi
	jnb	.L1
	jmp	.L52
.L44:
	.cfi_def_cfa_offset 8
	.cfi_restore 3
	.cfi_restore 6
	cmp	r11, rsi
	jnb	.L40
	mov	BYTE PTR [rdi+r11], 0
.L40:
	mov	rax, r11
	ret
	.cfi_endproc
.LFE0:
	.size	base64_decode, .-base64_decode
	.section	.rodata
	.align 32
	.type	rstr.1921, @object
	.size	rstr.1921, 256
rstr.1921:
	.string	"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377>\377\377\377?456789:;<=\377\377\377\377\377\377\377"
	.ascii	"\001\002\003\004\005\006\007\b\t\n\013\f\r\016\017\020\021\022"
	.ascii	"\023\024\025\026\027\030\031\377\377\377\377\377\377\032\033"
	.ascii	"\034\035\036\037 !\"#$%&'()*+,-./0123\377\377\377\377\377\377"
	.ascii	"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
	.ascii	"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
	.ascii	"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
	.ascii	"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
	.ascii	"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
	.ascii	"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
	.ascii	"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
	.ascii	"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
	.ascii	"\377\377\377\377\377\377\377"
	.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_crypto-base64.c_base64_decode.c"
	.text
	.align	2
	.global	base64_decode
	.syntax unified
	.arm
	.fpu softvfp
	.type	base64_decode, %function
base64_decode:
	@ args = 0, pretend = 0, frame = 0
	@ frame_needed = 0, uses_anonymous_args = 0
	push	{r4, r5, r6, r7, r8, r9, r10, lr}
	mov	r7, #0
	mov	ip, r7
	sub	r6, r3, #1
	ldr	lr, .L43
	add	r6, r6, r2
	rsb	r5, r2, #1
.L2:
	cmp	ip, r3
	bcs	.L3
	sub	ip, ip, #1
	add	ip, r2, ip
.L12:
	add	r4, r5, ip
	ldrb	r9, [ip, #1]!	@ zero_extendqisi2
	ldrb	r8, [lr, r9]	@ zero_extendqisi2
	cmp	r8, #64
	bls	.L38
	cmp	r6, ip
	bne	.L12
.L3:
	cmp	r7, r1
	movcc	r3, #0
	strbcc	r3, [r0, r7]
	mov	r0, r7
	pop	{r4, r5, r6, r7, r8, r9, r10, pc}
.L38:
	cmp	r9, #61
	beq	.L3
	cmp	r4, r3
	add	ip, r4, #1
	bcs	.L3
	cmp	r3, ip
	bls	.L3
	add	r4, r2, r4
	b	.L5
.L6:
	add	ip, ip, #1
	cmp	r3, ip
	bls	.L3
.L5:
	ldrb	r10, [r4, #1]!	@ zero_extendqisi2
	ldrb	r9, [lr, r10]	@ zero_extendqisi2
	cmp	r9, #64
	bhi	.L6
	cmp	r10, #61
	beq	.L3
	cmp	ip, r3
	add	r10, ip, #1
	bcs	.L3
	cmp	r7, r1
	bcs	.L7
	lsl	r4, r8, #2
	and	r4, r4, #255
	lsl	r8, r9, #26
	orr	r4, r4, r8, lsr #30
	strb	r4, [r0, r7]
	add	r7, r7, #1
.L7:
	cmp	r3, r10
	bls	.L3
	ldrb	r4, [r2, r10]	@ zero_extendqisi2
	b	.L8
.L40:
	ldrb	r8, [lr, r4]	@ zero_extendqisi2
	cmp	r8, #64
	bls	.L39
.L8:
	cmp	r4, #61
	bne	.L40
	b	.L3
.L39:
	cmp	r7, r1
	add	r10, ip, #2
	bcs	.L17
	lsl	r4, r9, #4
	and	r4, r4, #255
	lsl	r9, r8, #26
	orr	r4, r4, r9, lsr #28
	strb	r4, [r0, r7]
	add	r7, r7, #1
.L17:
	cmp	r3, r10
	bls	.L3
	ldrb	r4, [r2, r10]	@ zero_extendqisi2
	b	.L10
.L42:
	ldrb	r9, [lr, r4]	@ zero_extendqisi2
	cmp	r9, #64
	bls	.L41
.L10:
	cmp	r4, #61
	bne	.L42
	b	.L3
.L41:
	cmp	r7, r1
	add	ip, ip, #3
	orrcc	r8, r9, r8, lsl #6
	strbcc	r8, [r0, r7]
	addcc	r7, r7, #1
.L15:
	cmp	r3, ip
	bhi	.L2
	b	.L3
.L44:
	.align	2
.L43:
	.word	.LANCHOR0
	.size	base64_decode, .-base64_decode
	.section	.rodata
	.align	2
	.set	.LANCHOR0,. + 0
	.type	rstr.4205, %object
	.size	rstr.4205, 256
rstr.4205:
	.ascii	"\377\377\377\377\377\377\377\377\377\377\377\377\377"
	.ascii	"\377\377\377\377\377\377\377\377\377\377\377\377\377"
	.ascii	"\377\377\377\377\377\377\377\377\377\377\377\377\377"
	.ascii	"\377\377\377\377>\377\377\377?456789:;<=\377\377\377"
	.ascii	"\377\377\377\377\000\001\002\003\004\005\006\007\010"
	.ascii	"\011\012\013\014\015\016\017\020\021\022\023\024\025"
	.ascii	"\026\027\030\031\377\377\377\377\377\377\032\033\034"
	.ascii	"\035\036\037 !\"#$%&'()*+,-./0123\377\377\377\377\377"
	.ascii	"\377\377\377\377\377\377\377\377\377\377\377\377\377"
	.ascii	"\377\377\377\377\377\377\377\377\377\377\377\377\377"
	.ascii	"\377\377\377\377\377\377\377\377\377\377\377\377\377"
	.ascii	"\377\377\377\377\377\377\377\377\377\377\377\377\377"
	.ascii	"\377\377\377\377\377\377\377\377\377\377\377\377\377"
	.ascii	"\377\377\377\377\377\377\377\377\377\377\377\377\377"
	.ascii	"\377\377\377\377\377\377\377\377\377\377\377\377\377"
	.ascii	"\377\377\377\377\377\377\377\377\377\377\377\377\377"
	.ascii	"\377\377\377\377\377\377\377\377\377\377\377\377\377"
	.ascii	"\377\377\377\377\377\377\377\377\377\377\377"
	.ident	"GCC: (Ubuntu 9.4.0-1ubuntu1~20.04.2) 9.4.0"
	.section	.note.GNU-stack,"",%progbits
