Function at 0x14005e7e0
Capabilities:
Encode data using base64

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x48
mov r14, r9
mov esi, r8d
mov r15, rdx
mov rbx, rcx
cmp byte [r9 + 0x28], 0
jne 0x14005e871
mov rcx, qword [r14 + 0x10]
mov rdi, qword [r14 + 0x20]
cmp rcx, qword [r14 + 0x18]
jne 0x14005e85a
mov ebp, esi
lea rax, [rcx + rcx*2]
shr rax, 1
test rcx, rcx
mov esi, 0x20
cmovne rsi, rax
cmp rsi, rcx
jbe 0x14005e868
mov rax, rsi
shr rax, 0x3d
jne 0x14005e868
lea rdx, [rsi*8]
mov rcx, qword [r14 + 8]
call fcn.140093100
test rax, rax
je 0x14005e868
mov qword [r14 + 8], rax
mov qword [r14 + 0x18], rsi
mov rcx, qword [r14 + 0x10]
mov esi, ebp
jmp 0x14005e85e
mov rax, qword [r14 + 8]
mov qword [rax + rcx*8], rdi
inc qword [r14 + 0x10]
jmp 0x14005e871
mov word [r14 + 0x28], 0x101
mov esi, ebp
mov rcx, r14
call fcn.140056b60
xor ebp, ebp
mov qword [rsp + 0x28], rax
test rax, rax
je 0x14005ecac
cmp r15, rbx
je 0x14005e8c0
movsxd rdx, dword [r15 + 8]
mov rcx, rbx
call fcn.140054c60
test eax, eax
je 0x14005ecac
movsxd r8, dword [r15 + 8]
test r8, r8
je 0x14005e8cf
shl r8, 3
mov rcx, qword [rbx]
mov rdx, qword [r15]
call fcn.140266320
mov eax, dword [r15 + 8]
jmp 0x14005e8d1
test r15, r15
je 0x14005ecac
mov eax, dword [r15 + 8]
jmp 0x14005e8db
xor eax, eax
mov dword [rbx + 8], eax
mov ecx, dword [r15 + 0x10]
mov dword [rbx + 0x10], ecx
movsxd rdx, eax
mov rcx, qword [rsp + 0x28]
call fcn.140054c60
test eax, eax
je 0x14005ecac
mov r10d, dword [rbx + 8]
test r10d, r10d
je 0x14005eca7
mov eax, r10d
shl eax, 6
mov dword [rsp + 0x34], eax
xor ebp, ebp
mov qword [rsp + 0x38], r14
mov dword [rsp + 0x30], esi
nop word cs:[rax + rax]
bt esi, ebp
mov edi, 0
sbb rdi, rdi
movsxd r12, r10d
mov r11d, 1
mov ecx, ebp
shl r11d, cl
mov rax, qword [rsp + 0x28]
mov r15, qword [rax]
mov r13d, r11d
shr r13d, 6
cmp r13d, r12d
jae 0x14005e990
mov r9, qword [rbx]
cmp ebp, 5
jbe 0x14005e9b0
mov r8, r12
sub r8, r13
shl r8, 3
lea rdx, [r9 + r13*8]
mov rcx, r15
call fcn.140266320
shl r13, 3
lea rcx, [r15 + r12*8]
sub rcx, r13
xor edx, edx
mov r8, r13
call fcn.140266160
jmp 0x14005eb60
test r10d, r10d
je 0x14005eb60
shl r12, 3
mov rcx, r15
xor edx, edx
mov r8, r12
call fcn.140266160
jmp 0x14005eb60
and r11d, 0x3f
lea r8, [r12 - 1]
mov eax, r11d
sub r8, r13
jbe 0x14005eb47
mov qword [rsp + 0x40], r8
mov edx, 0x40
sub edx, r11d
mov rsi, r13
not rsi
add rsi, r12
mov r11, r13
cmp rsi, 8
jb 0x14005ea97
lea rcx, [r9 + r12*8]
cmp r15, rcx
jae 0x14005ea1b
lea rcx, [r12*8]
lea r8, [r13*8]
sub rcx, r8
add rcx, r15
add rcx, 0xfffffffffffffff8
lea r8, [r9 + r13*8]
mov r11, r13
cmp r8, rcx
jb 0x14005ea97
mov rcx, rsi
and rcx, 0xfffffffffffffffc
mov r11, rcx
or r11, r13
movd xmm0, eax
movd xmm1, edx
lea r14, [r9 + r13*8]
add r14, 0x18
xor r8d, r8d
nop dword [rax + rax]
movdqu xmm2, xmmword [r14 + r8*8 - 0x18]
movdqu xmm3, xmmword [r14 + r8*8 - 0x10]
movdqu xmm4, xmmword [r14 + r8*8 - 8]
movdqu xmm5, xmmword [r14 + r8*8]
psrlq xmm2, xmm0
psrlq xmm4, xmm0
psllq xmm3, xmm1
por xmm3, xmm2
psllq xmm5, xmm1
por xmm5, xmm4
movdqu xmmword [r15 + r8*8], xmm3
movdqu xmmword [r15 + r8*8 + 0x10], xmm5
add r8, 4
cmp rcx, r8
jne 0x14005ea40
cmp rsi, rcx
mov r14, qword [rsp + 0x38]
je 0x14005eb2e
mov ecx, r11d
not ecx
add ecx, r10d
mov r10, r11
test cl, 1
je 0x14005eacb
mov r8, qword [r9 + r11*8]
mov rsi, qword [r9 + r11*8 + 8]
mov ecx, eax
shr r8, cl
lea r10, [r11 + 1]
mov ecx, edx
shl rsi, cl
or rsi, r8
mov rcx, r11
sub rcx, r13
mov qword [r15 + rcx*8], rsi
lea rcx, [r12 - 2]
cmp rcx, r11
je 0x14005eb2e
inc r10
shl r13d, 3
mov r11, r15
sub r11, r13
nop word cs:[rax + rax]
mov r8, qword [r9 + r10*8 - 8]
mov rsi, qword [r9 + r10*8]
mov ecx, eax
shr r8, cl
mov ecx, edx
shl rsi, cl
or rsi, r8
mov qword [r11 + r10*8 - 8], rsi
mov r8, qword [r9 + r10*8]
mov rsi, qword [r9 + r10*8 + 8]
mov ecx, eax
shr r8, cl
mov ecx, edx
shl rsi, cl
or rsi, r8
mov qword [r11 + r10*8], rsi
add r10, 2
cmp r12, r10
jne 0x14005eaf0
mov rdx, qword [r9 + r12*8 - 8]
mov ecx, eax
shr rdx, cl
mov rax, qword [rsp + 0x40]
mov qword [r15 + rax*8], rdx
mov esi, dword [rsp + 0x30]
jmp 0x14005eb60
mov rdx, qword [r9 + r12*8 - 8]
mov ecx, eax
shr rdx, cl
mov qword [r15 + r8*8], rdx
nop word cs:[rax + rax]
movsxd rax, dword [rbx + 8]
test rax, rax
je 0x14005ec90
mov rcx, qword [rbx]
mov rdx, qword [rsp + 0x28]
mov rdx, qword [rdx]
mov r8, rdi
not r8
cmp eax, 6
jb 0x14005eb95
lea r9, [rdx + rax*8]
cmp rcx, r9
jae 0x14005ec0b
lea r9, [rcx + rax*8]
cmp rdx, r9
jae 0x14005ec0b
xor r9d, r9d
mov r10, r9
test al, 1
je 0x14005ebbb
mov r10, qword [rdx + r9*8]
and r10, rdi
mov r11, qword [rcx + r9*8]
and r11, r8
or r11, r10
mov qword [rcx + r9*8], r11
mov r10, r9
or r10, 1
lea r11, [rax - 1]
cmp r9, r11
je 0x14005ec90
nop dword [rax + rax]
mov r9, qword [rdx + r10*8]
and r9, rdi
mov r11, qword [rcx + r10*8]
and r11, r8
or r11, r9
mov qword [rcx + r10*8], r11
mov r9, qword [rdx + r10*8 + 8]
and r9, rdi
mov r11, qword [rcx + r10*8 + 8]
and r11, r8
or r11, r9
mov qword [rcx + r10*8 + 8], r11
add r10, 2
cmp rax, r10
jne 0x14005ebd0
jmp 0x14005ec90
mov r9, rax
and r9, 0xfffffffffffffffc
movq xmm0, rdi
pshufd xmm0, xmm0, 0x44
movq xmm1, r8
pshufd xmm1, xmm1, 0x44
xor r10d, r10d
nop dword [rax]
movdqu xmm2, xmmword [rcx + r10*8]
movdqu xmm3, xmmword [rcx + r10*8 + 0x10]
movdqu xmm4, xmmword [rdx + r10*8]
movdqu xmm5, xmmword [rdx + r10*8 + 0x10]
pand xmm4, xmm0
pand xmm5, xmm0
pand xmm2, xmm1
por xmm2, xmm4
pand xmm3, xmm1
por xmm3, xmm5
movdqu xmmword [rcx + r10*8], xmm2
movdqu xmmword [rcx + r10*8 + 0x10], xmm3
add r10, 4
cmp r9, r10
jne 0x14005ec30
cmp r9, rax
jne 0x14005eb98
nop word cs:[rax + rax]
inc ebp
mov eax, dword [rsp + 0x34]
mov ecx, ebp
shr eax, cl
test eax, eax
je 0x14005eca7
mov r10d, dword [rbx + 8]
jmp 0x14005e920
mov ebp, 1
cmp byte [r14 + 0x28], 0
jne 0x14005eccc
mov rax, qword [r14 + 8]
mov rcx, qword [r14 + 0x10]
lea rdx, [rcx - 1]
mov qword [r14 + 0x10], rdx
mov rax, qword [rax + rcx*8 - 8]
mov qword [r14 + 0x20], rax
mov eax, ebp
add rsp, 0x48
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret