Function at 0x14005e5d0
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 0x14005e661
mov rcx, qword [r14 + 0x10]
mov rdi, qword [r14 + 0x20]
cmp rcx, qword [r14 + 0x18]
jne 0x14005e64a
mov ebp, esi
lea rax, [rcx + rcx*2]
shr rax, 1
test rcx, rcx
mov esi, 0x20
cmovne rsi, rax
cmp rsi, rcx
jbe 0x14005e658
mov rax, rsi
shr rax, 0x3d
jne 0x14005e658
lea rdx, [rsi*8]
mov rcx, qword [r14 + 8]
call fcn.140092da0
test rax, rax
je 0x14005e658
mov qword [r14 + 8], rax
mov qword [r14 + 0x18], rsi
mov rcx, qword [r14 + 0x10]
mov esi, ebp
jmp 0x14005e64e
mov rax, qword [r14 + 8]
mov qword [rax + rcx*8], rdi
inc qword [r14 + 0x10]
jmp 0x14005e661
mov word [r14 + 0x28], 0x101
mov esi, ebp
mov rcx, r14
call fcn.1400569e0
xor ebp, ebp
mov qword [rsp + 0x28], rax
test rax, rax
je 0x14005ea9c
cmp r15, rbx
je 0x14005e6b0
movsxd rdx, dword [r15 + 8]
mov rcx, rbx
call fcn.140054ae0
test eax, eax
je 0x14005ea9c
movsxd r8, dword [r15 + 8]
test r8, r8
je 0x14005e6bf
shl r8, 3
mov rcx, qword [rbx]
mov rdx, qword [r15]
call fcn.14025caa0
mov eax, dword [r15 + 8]
jmp 0x14005e6c1
test r15, r15
je 0x14005ea9c
mov eax, dword [r15 + 8]
jmp 0x14005e6cb
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.140054ae0
test eax, eax
je 0x14005ea9c
mov r10d, dword [rbx + 8]
test r10d, r10d
je 0x14005ea97
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 0x14005e780
mov r9, qword [rbx]
cmp ebp, 5
jbe 0x14005e7a0
mov r8, r12
sub r8, r13
shl r8, 3
lea rdx, [r9 + r13*8]
mov rcx, r15
call fcn.14025caa0
shl r13, 3
lea rcx, [r15 + r12*8]
sub rcx, r13
xor edx, edx
mov r8, r13
call fcn.14025d290
jmp 0x14005e950
test r10d, r10d
je 0x14005e950
shl r12, 3
mov rcx, r15
xor edx, edx
mov r8, r12
call fcn.14025d290
jmp 0x14005e950
and r11d, 0x3f
lea r8, [r12 - 1]
mov eax, r11d
sub r8, r13
jbe 0x14005e937
mov qword [rsp + 0x40], r8
mov edx, 0x40
sub edx, r11d
mov rsi, r13
not rsi
add rsi, r12
mov r11, r13
cmp rsi, 4
jb 0x14005e887
lea rcx, [r9 + r12*8]
cmp r15, rcx
jae 0x14005e80b
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 0x14005e887
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 0x14005e830
cmp rsi, rcx
mov r14, qword [rsp + 0x38]
je 0x14005e91e
mov ecx, r11d
not ecx
add ecx, r10d
mov r10, r11
test cl, 1
je 0x14005e8bb
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 0x14005e91e
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 0x14005e8e0
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 0x14005e950
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 0x14005ea80
mov rcx, qword [rbx]
mov rdx, qword [rsp + 0x28]
mov rdx, qword [rdx]
mov r8, rdi
not r8
cmp eax, 4
jb 0x14005e985
lea r9, [rdx + rax*8]
cmp rcx, r9
jae 0x14005e9fb
lea r9, [rcx + rax*8]
cmp rdx, r9
jae 0x14005e9fb
xor r9d, r9d
mov r10, r9
test al, 1
je 0x14005e9ab
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 0x14005ea80
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 0x14005e9c0
jmp 0x14005ea80
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 0x14005ea20
cmp r9, rax
jne 0x14005e988
nop word cs:[rax + rax]
inc ebp
mov eax, dword [rsp + 0x34]
mov ecx, ebp
shr eax, cl
test eax, eax
je 0x14005ea97
mov r10d, dword [rbx + 8]
jmp 0x14005e710
mov ebp, 1
cmp byte [r14 + 0x28], 0
jne 0x14005eabc
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