Function at 0x14005d240
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 rdi, r9
mov r14d, r8d
mov r15, rdx
mov rbx, rcx
cmp byte [r9 + 0x28], 0
jne 0x14005d2dd
mov rcx, qword [rdi + 0x10]
mov rsi, qword [rdi + 0x20]
cmp rcx, qword [rdi + 0x18]
jne 0x14005d2c2
mov ebp, r14d
mov r14, rdi
lea rax, [rcx + rcx*2]
shr rax, 1
test rcx, rcx
mov edi, 0x20
cmovne rdi, rax
cmp rdi, rcx
jbe 0x14005d2d0
mov rax, rdi
shr rax, 0x3d
jne 0x14005d2d0
lea rdx, [rdi*8]
mov rcx, qword [r14 + 8]
call fcn.1400936b0
test rax, rax
je 0x14005d2d0
mov qword [r14 + 8], rax
mov qword [r14 + 0x18], rdi
mov rdi, r14
mov rcx, qword [r14 + 0x10]
mov r14d, ebp
jmp 0x14005d2c6
mov rax, qword [rdi + 8]
mov qword [rax + rcx*8], rsi
inc qword [rdi + 0x10]
jmp 0x14005d2dd
mov rdi, r14
mov word [r14 + 0x28], 0x101
mov r14d, ebp
mov rcx, rdi
call fcn.1400555e0
xor ebp, ebp
test rax, rax
je 0x14005d704
mov rsi, rax
cmp r15, rbx
je 0x14005d32a
movsxd rdx, dword [r15 + 8]
mov rcx, rbx
call fcn.140053740
test eax, eax
je 0x14005d704
movsxd r8, dword [r15 + 8]
test r8, r8
je 0x14005d339
shl r8, 3
mov rcx, qword [rbx]
mov rdx, qword [r15]
call fcn.140266e70
mov eax, dword [r15 + 8]
jmp 0x14005d33b
test r15, r15
je 0x14005d704
mov eax, dword [r15 + 8]
jmp 0x14005d345
xor eax, eax
mov dword [rbx + 8], eax
mov ecx, dword [r15 + 0x10]
mov dword [rbx + 0x10], ecx
movsxd rdx, eax
mov rcx, rsi
call fcn.140053740
test eax, eax
je 0x14005d704
mov r10d, dword [rbx + 8]
test r10d, r10d
je 0x14005d736
mov qword [rsp + 0x30], rdi
mov eax, r10d
shl eax, 6
mov dword [rsp + 0x2c], eax
xor ebp, ebp
mov dword [rsp + 0x28], r14d
mov qword [rsp + 0x38], rsi
xor edi, edi
bt r14d, ebp
setb al
movsxd r15, r10d
mov r8d, 1
mov ecx, ebp
shl r8d, cl
mov r12, qword [rsi]
mov r13d, r8d
shr r13d, 6
cmp r15d, r13d
mov byte [rsp + 0x27], al
jbe 0x14005d3e0
mov r9, qword [rbx]
cmp ebp, 5
jbe 0x14005d4b0
mov r8, r15
sub r8, r13
shl r8, 3
lea rdx, [r9 + r13*8]
mov rcx, r12
call fcn.140266e70
shl r13, 3
lea rcx, [r12 + r15*8]
sub rcx, r13
xor edx, edx
mov r8, r13
jmp 0x14005d3f1
test r10d, r10d
je 0x14005d3f6
shl r15, 3
mov rcx, r12
xor edx, edx
mov r8, r15
call fcn.140266cb0
movsxd rax, dword [rbx + 8]
test rax, rax
je 0x14005d6d0
movzx ecx, byte [rsp + 0x27]
mov dil, cl
mov rcx, rdi
neg rcx
mov rdx, qword [rbx]
mov r8, qword [rsi]
dec rdi
cmp eax, 6
jb 0x14005d439
lea r9, [r8 + rax*8]
cmp rdx, r9
jae 0x14005d649
lea r9, [rdx + rax*8]
cmp r8, r9
jae 0x14005d649
xor r9d, r9d
mov r10, r9
test al, 1
je 0x14005d45f
mov r10, qword [r8 + r9*8]
and r10, rcx
mov r11, qword [rdx + r9*8]
and r11, rdi
or r11, r10
mov qword [rdx + r9*8], r11
mov r10, r9
or r10, 1
not r9
add r9, rax
je 0x14005d6d0
nop dword [rax + rax]
mov r9, qword [r8 + r10*8]
and r9, rcx
mov r11, qword [rdx + r10*8]
and r11, rdi
or r11, r9
mov qword [rdx + r10*8], r11
mov r9, qword [r8 + r10*8 + 8]
and r9, rcx
mov r11, qword [rdx + r10*8 + 8]
and r11, rdi
or r11, r9
mov qword [rdx + r10*8 + 8], r11
add r10, 2
cmp rax, r10
jne 0x14005d470
jmp 0x14005d6d0
and r8d, 0x3f
lea r11, [r15 - 1]
mov eax, r8d
sub r11, r13
jbe 0x14005d6e7
mov qword [rsp + 0x40], r11
mov edx, 0x40
sub edx, r8d
mov r14, r13
not r14
add r14, r15
mov r11, r13
cmp r14, 8
jb 0x14005d592
lea rcx, [r9 + r15*8]
cmp r12, rcx
jae 0x14005d516
lea rcx, [r15*8]
lea r8, [r13*8]
sub rcx, r8
add rcx, r12
add rcx, 0xfffffffffffffff8
lea r8, [r9 + r13*8]
mov r11, r13
cmp r8, rcx
jb 0x14005d592
mov rcx, r14
and rcx, 0xfffffffffffffffc
lea r11, [rcx + r13]
movd xmm0, eax
movd xmm1, edx
lea r8, [r9 + r13*8]
add r8, 0x18
xor esi, esi
nop word cs:[rax + rax]
movdqu xmm2, xmmword [r8 + rsi*8 - 0x18]
movdqu xmm3, xmmword [r8 + rsi*8 - 0x10]
movdqu xmm4, xmmword [r8 + rsi*8 - 8]
movdqu xmm5, xmmword [r8 + rsi*8]
psrlq xmm2, xmm0
psrlq xmm4, xmm0
psllq xmm3, xmm1
por xmm3, xmm2
psllq xmm5, xmm1
por xmm5, xmm4
movdqu xmmword [r12 + rsi*8], xmm3
movdqu xmmword [r12 + rsi*8 + 0x10], xmm5
add rsi, 4
cmp rcx, rsi
jne 0x14005d540
cmp r14, rcx
je 0x14005d61e
mov ecx, r11d
not ecx
add ecx, r10d
lea r8, [r15 - 2]
mov r10, r11
test cl, 1
je 0x14005d5ca
mov rsi, qword [r9 + r11*8]
mov r14, qword [r9 + r11*8 + 8]
mov ecx, eax
shr rsi, cl
lea r10, [r11 + 1]
mov ecx, edx
shl r14, cl
or r14, rsi
mov rcx, r11
sub rcx, r13
mov qword [r12 + rcx*8], r14
cmp r8, r11
je 0x14005d61e
inc r10
lea rcx, [r13*8]
mov r11, r12
sub r11, rcx
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 r15, r10
jne 0x14005d5e0
mov rdx, qword [r9 + r15*8 - 8]
mov ecx, eax
shr rdx, cl
mov rax, qword [rsp + 0x40]
mov qword [r12 + rax*8], rdx
cmp ebp, 6
mov r14d, dword [rsp + 0x28]
mov rsi, qword [rsp + 0x38]
jae 0x14005d3cc
jmp 0x14005d3f6
mov r9, rax
and r9, 0xfffffffffffffffc
movq xmm0, rcx
pshufd xmm0, xmm0, 0x44
movq xmm1, rdi
pshufd xmm1, xmm1, 0x44
xor r10d, r10d
nop word [rax + rax]
movdqu xmm2, xmmword [rdx + r10*8]
movdqu xmm3, xmmword [rdx + r10*8 + 0x10]
movdqu xmm4, xmmword [r8 + r10*8]
movdqu xmm5, xmmword [r8 + r10*8 + 0x10]
pand xmm4, xmm0
pand xmm5, xmm0
pand xmm2, xmm1
por xmm2, xmm4
pand xmm3, xmm1
por xmm3, xmm5
movdqu xmmword [rdx + r10*8], xmm2
movdqu xmmword [rdx + r10*8 + 0x10], xmm3
add r10, 4
cmp r9, r10
jne 0x14005d670
cmp r9, rax
jne 0x14005d43c
nop word cs:[rax + rax]
inc ebp
mov eax, dword [rsp + 0x2c]
mov ecx, ebp
shr eax, cl
test eax, eax
je 0x14005d6fa
mov r10d, dword [rbx + 8]
jmp 0x14005d380
mov rdx, qword [r9 + r15*8 - 8]
mov ecx, eax
shr rdx, cl
mov qword [r12 + r11*8], rdx
jmp 0x14005d3f6
mov ebp, 1
mov rdi, qword [rsp + 0x30]
cmp byte [rdi + 0x28], 0
jne 0x14005d723
mov rax, qword [rdi + 8]
mov rcx, qword [rdi + 0x10]
lea rdx, [rcx - 1]
mov qword [rdi + 0x10], rdx
mov rax, qword [rax + rcx*8 - 8]
mov qword [rdi + 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
mov ebp, 1
cmp byte [rdi + 0x28], 0
jne 0x14005d723
jmp 0x14005d70a