Function at 0x140085800
Capabilities:
Encode data using base64

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x38
mov rdi, rcx
mov r13, qword [rcx + 0x28]
mov rbx, qword [rcx + 0x158]
and ebx, 0x3f
mov r12, r13
mov ecx, ebx
shr r12, cl
test r12, r12
je 0x140085a0e
mov rax, r12
shr rax, 0x3d
jne 0x140085a0e
lea r14, [r12*4]
movzx eax, byte [0x141936118]
xor ecx, ecx
mov rdx, r14
call fcn.1400dee70
test rax, rax
je 0x140085a0e
mov rsi, rax
cmp r12, 8
jae 0x14008586e
xor eax, eax
jmp 0x1400858c0
mov rax, r12
and rax, 0xfffffffffffffff8
movdqa xmm0, xmmword [0x140110ea0]
xor ecx, ecx
movdqa xmm1, xmmword [0x140110eb0]
movdqa xmm2, xmmword [0x140110ec0]
nop
movdqa xmm3, xmm0
paddd xmm3, xmm1
movdqu xmmword [rsi + rcx*4], xmm0
movdqu xmmword [rsi + rcx*4 + 0x10], xmm3
add rcx, 8
paddd xmm0, xmm2
cmp rax, rcx
jne 0x140085890
cmp r12, rax
je 0x1400858cf
nop word cs:[rax + rax]
mov dword [rsi + rax*4], eax
lea rcx, [rax + 1]
mov rax, rcx
cmp r12, rcx
jne 0x1400858c0
movabs r11, 0x1fffffffffffffff
mov rbp, qword [rdi + 0x20]
mov rdx, qword [rdi + 0x160]
mov r8, r12
mov r9d, r12d
dec r9d
lea rax, [r8 - 0x80000000]
nop word cs:[rax + rax]
sub r8, 1
jb 0x1400859eb
cmp rax, 0xffffffff80000001
jb 0x140085a0e
mov r10, r8
mov ecx, ebx
shl r10, cl
add r10, rdx
cmp r10, r13
jae 0x140085a0e
mov rcx, qword [rbp + r10*8]
shr rcx, 0x2a
cmp ecx, 0x3fffff
jae 0x140085900
cmp r9d, r8d
je 0x1400859d9
mov qword [rsp + 0x28], r14
mov qword [rsp + 0x30], rdi
mov r10d, r9d
mov r15, r10
mov ecx, ebx
shl r15, cl
mov eax, r8d
mov r11, rax
shl r11, cl
mov r14d, 1
nop dword [rax + rax]
cmp r15, r13
jae 0x140085a0e
cmp r11, r13
jae 0x140085a0e
mov rcx, qword [rbp + r15*8]
mov rdi, qword [rbp + r11*8]
mov qword [rbp + r15*8], rdi
mov qword [rbp + r11*8], rcx
mov rdi, r14
mov ecx, ebx
shr rdi, cl
inc r11
inc r15
inc r14
test rdi, rdi
je 0x140085970
cmp r12, r10
jbe 0x140085a0e
cmp rax, r12
jae 0x140085a0e
mov ecx, dword [rsi + r10*4]
mov r11d, dword [rsi + rax*4]
mov dword [rsi + r10*4], r11d
mov dword [rsi + rax*4], ecx
mov rdi, qword [rsp + 0x30]
mov r14, qword [rsp + 0x28]
movabs r11, 0x1fffffffffffffff
mov dword [rdi + 0x170], r9d
test r9d, r9d
jne 0x1400858ea
jmp 0x140085a0e
test r12, r12
je 0x140085a10
cmp r12, r11
ja 0x140085a0e
movzx eax, byte [0x141936118]
xor ecx, ecx
mov rdx, r14
call fcn.1400dee70
mov r15, rax
test rax, rax
jne 0x140085a19
ud2
mov r15d, 4
xor r14d, r14d
mov rcx, r15
mov rdx, rsi
mov r8, r14
call sub.msvcrt.dll_memcpy
xor eax, eax
jmp 0x140085a3b
mov dword [rsi + rax*4], ecx
inc rax
cmp rax, r12
je 0x140085a63
cmp rax, r12
je 0x140085a0e
mov edx, dword [r15 + rax*4]
cmp edx, eax
je 0x140085a33
nop dword [rax + rax]
mov ecx, edx
mov edx, edx
cmp r12, rdx
jbe 0x140085a0e
mov edx, dword [r15 + rdx*4]
cmp edx, eax
jne 0x140085a50
jmp 0x140085a30
mov rax, qword [rdi + 0x150]
test rax, rax
je 0x140085ace
xor edx, edx
movabs r8, 0x7ffffffffff
nop dword [rax + rax]
mov r9, rdx
inc rdx
mov ecx, ebx
shl r9, cl
mov rcx, rax
nop
cmp r9, r13
jae 0x140085a0e
mov r10, qword [rbp + r9*8]
mov r11, r10
shr r11, 0x2b
cmp r11, r12
jae 0x140085a0e
mov r11d, dword [rsi + r11*4]
shl r11, 0x2b
and r10, r8
or r10, r11
mov qword [rbp + r9*8], r10
inc r9
dec rcx
jne 0x140085a90
cmp rdx, r12
jne 0x140085a80
mov rax, qword [rdi + 0x40]
test rax, rax
je 0x140085aff
mov rcx, qword [rdi + 0x38]
xor edx, edx
nop dword [rax]
mov r8d, dword [rcx + rdx*4]
cmp r12, r8
jbe 0x140085a0e
mov r8d, dword [rsi + r8*4]
mov dword [rcx + rdx*4], r8d
inc rdx
cmp rax, rdx
jne 0x140085ae0
jmp 0x140085b04
test r12, r12
je 0x140085b26
mov rcx, qword [0x141936088]
xor edx, edx
mov r8, r15
call fcn.140102ef8
mov rcx, qword [0x141936088]
xor edx, edx
mov r8, rsi
call fcn.140102ef8
nop
add rsp, 0x38
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret