	.file	"extr_base64.c_BinaryToBase64A.c"
	.intel_syntax noprefix
	.text
	.section	.rodata.str1.1,"aMS",@progbits,1
.LC0:
	.string	""
	.text
	.p2align 4
	.type	BinaryToBase64A, @function
BinaryToBase64A:
.LFB0:
	.cfi_startproc
	endbr64
	push	r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	push	r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	push	r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	mov	r13d, esi
	push	r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	mov	r12, rdi
	push	rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	lea	rbp, lf.1952[rip]
	push	rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	mov	rbx, rcx
	sub	rsp, 40
	.cfi_def_cfa_offset 96
	mov	QWORD PTR [rsp], r8
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR 24[rsp], rax
	xor	eax, eax
	mov	eax, DWORD PTR TRUE[rip]
	mov	DWORD PTR 8[rsp], eax
	test	DWORD PTR CRYPT_STRING_NOCR[rip], edx
	jne	.L2
	test	DWORD PTR CRYPT_STRING_NOCRLF[rip], edx
	lea	rbp, .LC0[rip]
	lea	rax, crlf.1951[rip]
	cmove	rbp, rax
.L2:
	and	edx, 268435455
	cmp	edx, 129
	je	.L12
	cmp	edx, 130
	je	.L13
	cmp	edx, 128
	je	.L32
	lea	r8, 16[rsp]
	xor	ecx, ecx
	mov	rdx, rbp
	mov	esi, r13d
	mov	rdi, r12
	mov	DWORD PTR 16[rsp], 0
	xor	r15d, r15d
	xor	r14d, r14d
	call	encodeBase64A@PLT
	mov	eax, DWORD PTR 16[rsp]
.L6:
	test	rbx, rbx
	je	.L7
	mov	rcx, QWORD PTR [rsp]
	cmp	DWORD PTR [rcx], eax
	jl	.L8
	mov	DWORD PTR 20[rsp], eax
	test	r14, r14
	je	.L9
	mov	rsi, r14
	mov	rdi, rbx
	call	strcpy@PLT
	mov	rdi, rbx
	call	strlen@PLT
	mov	rsi, rbp
	cdqe
	add	rbx, rax
	mov	rdi, rbx
	call	strcpy@PLT
	mov	rdi, rbp
	call	strlen@PLT
	cdqe
	add	rbx, rax
.L9:
	lea	r8, 20[rsp]
	mov	rcx, rbx
	mov	rdx, rbp
	mov	esi, r13d
	mov	rdi, r12
	call	encodeBase64A@PLT
	test	r15, r15
	je	.L10
	movsx	rax, DWORD PTR 20[rsp]
	mov	rsi, r15
	lea	rbx, -1[rbx+rax]
	mov	rdi, rbx
	call	strcpy@PLT
	mov	rdi, rbx
	call	strlen@PLT
	mov	rsi, rbp
	movsx	rdi, eax
	add	rdi, rbx
	call	strcpy@PLT
.L10:
	mov	eax, DWORD PTR 16[rsp]
	mov	rbx, QWORD PTR [rsp]
	sub	eax, 1
	mov	DWORD PTR [rbx], eax
.L1:
	mov	rax, QWORD PTR 24[rsp]
	xor	rax, QWORD PTR fs:40
	jne	.L33
	mov	eax, DWORD PTR 8[rsp]
	add	rsp, 40
	.cfi_remember_state
	.cfi_def_cfa_offset 56
	pop	rbx
	.cfi_def_cfa_offset 48
	pop	rbp
	.cfi_def_cfa_offset 40
	pop	r12
	.cfi_def_cfa_offset 32
	pop	r13
	.cfi_def_cfa_offset 24
	pop	r14
	.cfi_def_cfa_offset 16
	pop	r15
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L8:
	.cfi_restore_state
	mov	rsi, QWORD PTR [rsp]
	mov	DWORD PTR [rsi], eax
	mov	edi, DWORD PTR ERROR_INSUFFICIENT_BUFFER[rip]
	call	SetLastError@PLT
	mov	eax, DWORD PTR FALSE[rip]
	mov	DWORD PTR 8[rsp], eax
	jmp	.L1
	.p2align 4,,10
	.p2align 3
.L7:
	mov	rbx, QWORD PTR [rsp]
	mov	DWORD PTR [rbx], eax
	jmp	.L1
	.p2align 4,,10
	.p2align 3
.L12:
	mov	r14, QWORD PTR CERT_REQUEST_HEADER[rip]
	mov	r15, QWORD PTR CERT_REQUEST_TRAILER[rip]
.L3:
	xor	ecx, ecx
	lea	r8, 16[rsp]
	mov	rdx, rbp
	mov	esi, r13d
	mov	rdi, r12
	mov	DWORD PTR 16[rsp], 0
	call	encodeBase64A@PLT
	test	r14, r14
	je	.L4
	mov	rdi, r14
	call	strlen@PLT
	mov	rdi, rbp
	mov	DWORD PTR 12[rsp], eax
	call	strlen@PLT
	add	eax, DWORD PTR 12[rsp]
	add	DWORD PTR 16[rsp], eax
.L4:
	mov	eax, DWORD PTR 16[rsp]
	test	r15, r15
	je	.L6
	mov	rdi, r15
	call	strlen@PLT
	mov	rdi, rbp
	mov	DWORD PTR 12[rsp], eax
	call	strlen@PLT
	add	eax, DWORD PTR 12[rsp]
	add	eax, DWORD PTR 16[rsp]
	mov	DWORD PTR 16[rsp], eax
	jmp	.L6
	.p2align 4,,10
	.p2align 3
.L32:
	mov	r14, QWORD PTR X509_HEADER[rip]
	mov	r15, QWORD PTR X509_TRAILER[rip]
	jmp	.L3
	.p2align 4,,10
	.p2align 3
.L13:
	mov	r14, QWORD PTR CERT_HEADER[rip]
	mov	r15, QWORD PTR CERT_TRAILER[rip]
	jmp	.L3
.L33:
	call	__stack_chk_fail@PLT
	.cfi_endproc
.LFE0:
	.size	BinaryToBase64A, .-BinaryToBase64A
	.section	.rodata
	.type	crlf.1951, @object
	.size	crlf.1951, 3
crlf.1951:
	.string	"\r\n"
	.type	lf.1952, @object
	.size	lf.1952, 2
lf.1952:
	.string	"\n"
	.comm	X509_TRAILER,8,8
	.comm	X509_HEADER,8,8
	.comm	TRUE,4,4
	.comm	FALSE,4,4
	.comm	ERROR_INSUFFICIENT_BUFFER,4,4
	.comm	CRYPT_STRING_NOCRLF,4,4
	.comm	CRYPT_STRING_NOCR,4,4
	.comm	CERT_TRAILER,8,8
	.comm	CERT_REQUEST_TRAILER,8,8
	.comm	CERT_REQUEST_HEADER,8,8
	.comm	CERT_HEADER,8,8
	.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_base64.c_BinaryToBase64A.c"
	.text
	.section	.rodata.str1.4,"aMS",%progbits,1
	.align	2
.LC0:
	.ascii	"\000"
	.section	.rodata.cst4,"aM",%progbits,4
	.align	2
.LC1:
	.word	__stack_chk_guard
	.text
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	BinaryToBase64A, %function
BinaryToBase64A:
	@ args = 4, pretend = 0, frame = 24
	@ frame_needed = 0, uses_anonymous_args = 0
	push	{r4, r5, r6, r7, r8, r9, r10, fp, lr}
	ldr	lr, .L34
	mov	r4, r3
	ldr	lr, [lr]
	ldr	ip, .L34+4
	ldr	r3, .L34+8
	sub	sp, sp, #36
	tst	r2, lr
	mov	r6, r0
	mov	r7, r1
	ldr	r3, [r3]
	str	r3, [sp, #28]
	mov	r3,#0
	ldr	fp, [ip]
	ldr	r10, [sp, #72]
	bne	.L17
	ldr	r3, .L34+12
	ldr	r5, .L34+16
	ldr	r1, [r3]
	ldr	r3, .L34+20
	tst	r2, r1
	bic	r2, r2, #-268435456
	moveq	r5, r3
	cmp	r2, #129
	beq	.L12
.L33:
	cmp	r2, #130
	beq	.L13
	cmp	r2, #128
	beq	.L31
	mov	r3, #0
	mov	r8, r3
	mov	r9, r8
	add	r2, sp, #20
	str	r2, [sp]
	mov	r1, r7
	mov	r2, r5
	mov	r0, r6
	str	r3, [sp, #20]
	bl	encodeBase64A
	ldr	r3, [sp, #20]
.L6:
	cmp	r4, #0
	streq	r3, [r10]
	beq	.L1
	ldr	r2, [r10]
	cmp	r2, r3
	blt	.L8
	cmp	r9, #0
	str	r3, [sp, #24]
	beq	.L9
	mov	r1, r9
	mov	r0, r4
	bl	strcpy
	mov	r0, r4
	bl	strlen
	add	r4, r4, r0
	mov	r0, r4
	mov	r1, r5
	bl	strcpy
	mov	r0, r5
	bl	strlen
	add	r4, r4, r0
.L9:
	add	r3, sp, #24
	str	r3, [sp]
	mov	r1, r7
	mov	r0, r6
	mov	r3, r4
	mov	r2, r5
	bl	encodeBase64A
	cmp	r8, #0
	beq	.L10
	ldr	r3, [sp, #24]
	mov	r1, r8
	sub	r3, r3, #1
	add	r4, r4, r3
	mov	r0, r4
	bl	strcpy
	mov	r0, r4
	bl	strlen
	mov	r1, r5
	add	r0, r4, r0
	bl	strcpy
.L10:
	ldr	r3, [sp, #20]
	sub	r3, r3, #1
	str	r3, [r10]
.L1:
	ldr	r3, .L34+8
	ldr	r2, [r3]
	ldr	r3, [sp, #28]
	eors	r2, r3, r2
	mov	r3, #0
	bne	.L32
	mov	r0, fp
	add	sp, sp, #36
	@ sp needed
	pop	{r4, r5, r6, r7, r8, r9, r10, fp, pc}
.L17:
	bic	r2, r2, #-268435456
	cmp	r2, #129
	ldr	r5, .L34+24
	bne	.L33
.L12:
	ldr	r2, .L34+28
	ldr	r3, .L34+32
	ldr	r9, [r2]
	ldr	r8, [r3]
	b	.L3
.L8:
	ldr	r2, .L34+36
	str	r3, [r10]
	ldr	r0, [r2]
	bl	SetLastError
	ldr	r3, .L34+40
	ldr	fp, [r3]
	b	.L1
.L31:
	ldr	r2, .L34+44
	ldr	r3, .L34+48
	ldr	r9, [r2]
	ldr	r8, [r3]
.L3:
	mov	r3, #0
	add	r2, sp, #20
	str	r2, [sp]
	mov	r1, r7
	mov	r2, r5
	mov	r0, r6
	str	r3, [sp, #20]
	bl	encodeBase64A
	cmp	r9, #0
	ldreq	r3, [sp, #20]
	beq	.L5
	mov	r0, r9
	bl	strlen
	mov	r3, r0
	mov	r0, r5
	str	r3, [sp, #8]
	bl	strlen
	ldr	r3, [sp, #8]
	ldr	r2, [sp, #20]
	add	r3, r3, r0
	add	r3, r3, r2
	str	r3, [sp, #20]
.L5:
	cmp	r8, #0
	beq	.L6
	mov	r0, r8
	str	r3, [sp, #12]
	bl	strlen
	mov	r2, r0
	mov	r0, r5
	str	r2, [sp, #8]
	bl	strlen
	ldr	r2, [sp, #8]
	ldr	r3, [sp, #12]
	add	r2, r2, r0
	add	r3, r3, r2
	str	r3, [sp, #20]
	b	.L6
.L13:
	ldr	r2, .L34+52
	ldr	r3, .L34+56
	ldr	r9, [r2]
	ldr	r8, [r3]
	b	.L3
.L32:
	bl	__stack_chk_fail
.L35:
	.align	2
.L34:
	.word	CRYPT_STRING_NOCR
	.word	TRUE
	.word	.LC1
	.word	CRYPT_STRING_NOCRLF
	.word	.LC0
	.word	.LANCHOR0+4
	.word	.LANCHOR0
	.word	CERT_REQUEST_HEADER
	.word	CERT_REQUEST_TRAILER
	.word	ERROR_INSUFFICIENT_BUFFER
	.word	FALSE
	.word	X509_HEADER
	.word	X509_TRAILER
	.word	CERT_HEADER
	.word	CERT_TRAILER
	.size	BinaryToBase64A, .-BinaryToBase64A
	.comm	X509_TRAILER,4,4
	.comm	X509_HEADER,4,4
	.comm	TRUE,4,4
	.comm	FALSE,4,4
	.comm	ERROR_INSUFFICIENT_BUFFER,4,4
	.comm	CRYPT_STRING_NOCRLF,4,4
	.comm	CRYPT_STRING_NOCR,4,4
	.comm	CERT_TRAILER,4,4
	.comm	CERT_REQUEST_TRAILER,4,4
	.comm	CERT_REQUEST_HEADER,4,4
	.comm	CERT_HEADER,4,4
	.section	.rodata
	.align	2
	.set	.LANCHOR0,. + 0
	.type	lf.4236, %object
	.size	lf.4236, 2
lf.4236:
	.ascii	"\012\000"
	.space	2
	.type	crlf.4235, %object
	.size	crlf.4235, 3
crlf.4235:
	.ascii	"\015\012\000"
	.ident	"GCC: (Ubuntu 9.4.0-1ubuntu1~20.04.2) 9.4.0"
	.section	.note.GNU-stack,"",%progbits
