Function at 0x6fd4d0
Capabilities:
Encode data using base64

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x48
xor r12d, r12d
mov rax, rcx
mov qword [rsp + 0x90], rcx
mov ecx, dword [rcx]
mov qword [rsp + 0xa0], r8
lea r8, [rax + 8]
mov qword [rsp + 0x98], rdx
test ecx, ecx
jle 0x6fd517
movsxd rax, ecx
cmp byte [r8 + rax - 1], 0x3d
je 0x6fd870
mov edx, dword [rsp + 0xb0]
xor r13d, r13d
test edx, edx
je 0x6fd6e8
mov rax, qword [rsp + 0x90]
lea r15, [0x00ac9de0]
test byte [rax + 0x5c], 2
lea rax, [0x00ac9d60]
cmovne r15, rax
mov eax, dword [rsp + 0xb0]
test eax, eax
jle 0x6fd8e2
movsxd rax, dword [rsp + 0xb0]
mov dword [rsp + 0xb0], 0
add rax, r9
mov qword [rsp + 0x28], rax
mov rax, qword [rsp + 0x90]
add rax, 0x48
mov qword [rsp + 0x30], rax
lea eax, [r8 + 0x40]
mov dword [rsp + 0x3c], eax
jmp 0x6fd5bd
test r12d, r12d
je 0x6fd5f8
or eax, 0x13
cmp al, 0xf3
jne 0x6fd6e2
cmp r10d, 0xf2
je 0x6fd898
cmp ecx, 0x40
je 0x6fd624
cmp qword [rsp + 0x28], r9
je 0x6fd6a0
movzx edx, byte [r9]
add r9, 1
test dl, dl
js 0x6fd6e2
movzx eax, dl
movzx r10d, byte [r15 + rax]
mov eax, r10d
cmp r10d, 0xff
je 0x6fd6e2
cmp dl, 0x3d
jne 0x6fd590
add r12d, 1
cmp r12d, 3
je 0x6fd6e2
cmp r10d, 0xf2
je 0x6fd898
or eax, 0x13
cmp al, 0xf3
je 0x6fd5ad
cmp ecx, 0x3f
jg 0x6fd6e2
movsxd rax, ecx
add ecx, 1
mov byte [r8 + rax], dl
cmp ecx, 0x40
jne 0x6fd5b2
mov rax, qword [rsp + 0x90]
lea rbx, [0x00ac9de0]
mov r10, qword [rsp + 0x30]
mov rcx, r8
mov edx, dword [rsp + 0x3c]
test byte [rax + 0x5c], 2
lea rax, [0x00ac9d60]
cmovne rbx, rax
nop
movzx eax, byte [rcx]
mov edi, edx
sub edi, ecx
test al, al
js 0x6fd720
cmp byte [rbx + rax], 0xe0
jne 0x6fd720
add rcx, 1
cmp r10, rcx
jne 0x6fd650
test r12d, r12d
jne 0x6fd6e0
xor r13d, r13d
sub r13d, r12d
xor ecx, ecx
add dword [rsp + 0xb0], r13d
movsxd r13, r13d
add qword [rsp + 0x98], r13
cmp qword [rsp + 0x28], r9
jne 0x6fd5bd
nop dword [rax]
test ecx, ecx
jle 0x6fd6a9
test cl, 3
je 0x6fd6be
test ecx, ecx
setne r13b
test r12d, r12d
sete al
or r13d, eax
movzx r13d, r13b
jmp 0x6fd6e8
mov r9d, ecx
mov rdx, qword [rsp + 0x98]
mov rcx, qword [rsp + 0x90]
call fcn.006fcfc0
cmp r12d, eax
jle 0x6fd8f2
nop
xor ecx, ecx
mov r13d, 0xffffffff
mov rax, qword [rsp + 0xa0]
mov esi, dword [rsp + 0xb0]
mov dword [rax], esi
mov rax, qword [rsp + 0x90]
mov dword [rax], ecx
mov eax, r13d
add rsp, 0x48
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
cmp edi, 3
jle 0x6fd74e
movsxd rax, edi
lea rdx, [rcx + rax - 1]
jmp 0x6fd747
movzx eax, byte [rbx + rax]
or eax, 0x13
cmp al, 0xf3
jne 0x6fd74e
sub edi, 1
sub rdx, 1
cmp edi, 3
je 0x6fd6e0
movzx eax, byte [rdx]
test al, al
jns 0x6fd730
test dil, 3
jne 0x6fd6e0
test edi, edi
je 0x6fd672
mov rsi, qword [rsp + 0x98]
xor ebp, ebp
xor r13d, r13d
jmp 0x6fd808
movzx eax, byte [rbx + rax]
movzx edx, byte [rcx + 1]
mov r14d, eax
test dl, dl
js 0x6fd830
movzx r10d, byte [rcx + 2]
movzx edx, byte [rbx + rdx]
test r10b, r10b
js 0x6fd848
add rcx, 4
movzx r11d, byte [rbx + r10]
movzx r10d, byte [rcx - 1]
test r10b, r10b
js 0x6fd860
movzx r10d, byte [rbx + r10]
test r14b, r14b
js 0x6fd6e0
test dl, dl
js 0x6fd6e0
test r11b, r11b
js 0x6fd6e0
test r10b, r10b
js 0x6fd6e0
shl edx, 0xc
shl eax, 0x12
add rsi, 3
add ebp, 4
or eax, edx
shl r11d, 6
add r13d, 3
or eax, r11d
mov byte [rsi - 2], ah
mov edx, eax
or r10d, eax
shr edx, 0x10
mov byte [rsi - 3], dl
mov byte [rsi - 1], r10b
cmp ebp, edi
jge 0x6fd67a
movzx eax, byte [rcx]
test al, al
jns 0x6fd770
movzx edx, byte [rcx + 1]
mov r14d, 0xffffffff
mov eax, 0xff
test dl, dl
jns 0x6fd783
nop word [rax + rax]
movzx r10d, byte [rcx + 2]
mov edx, 0xff
test r10b, r10b
jns 0x6fd795
nop dword [rax + rax]
movzx r10d, byte [rcx + 3]
add rcx, 4
mov r11d, 0xff
test r10b, r10b
jns 0x6fd7ac
mov r10d, 0xff
jmp 0x6fd7b1
mov r12d, 1
cmp ecx, 1
je 0x6fd517
xor r12d, r12d
cmp byte [r8 + rax - 2], 0x3d
sete r12b
add r12d, 1
jmp 0x6fd517
xor r13d, r13d
test ecx, ecx
jle 0x6fd6e8
mov r13d, ecx
and r13d, 3
jne 0x6fd6e2
mov r9d, ecx
mov rdx, qword [rsp + 0x98]
mov rcx, qword [rsp + 0x90]
call fcn.006fcfc0
cmp r12d, eax
jg 0x6fd6e0
sub eax, r12d
xor ecx, ecx
add dword [rsp + 0xb0], eax
jmp 0x6fd6e8
mov dword [rsp + 0xb0], 0
jmp 0x6fd6a0
sub eax, r12d
xor ecx, ecx
add dword [rsp + 0xb0], eax
jmp 0x6fd6a9