Function at 0x14009a440
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 0x14009a64e
mov rax, r12
shr rax, 0x3d
jne 0x14009a64e
lea r14, [r12*4]
movzx eax, byte [0x141ada129]
xor ecx, ecx
mov rdx, r14
call fcn.14014fee0
test rax, rax
je 0x14009a64e
mov rsi, rax
cmp r12, 8
jae 0x14009a4ae
xor eax, eax
jmp 0x14009a500
mov rax, r12
and rax, 0xfffffffffffffff8
movdqa xmm0, xmmword [0x14021a000]
xor ecx, ecx
movdqa xmm1, xmmword [0x14021a010]
movdqa xmm2, xmmword [0x14021a020]
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 0x14009a4d0
cmp r12, rax
je 0x14009a50f
nop word cs:[rax + rax]
mov dword [rsi + rax*4], eax
lea rcx, [rax + 1]
mov rax, rcx
cmp r12, rcx
jne 0x14009a500
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 0x14009a62b
cmp rax, 0xffffffff80000001
jb 0x14009a64e
mov r10, r8
mov ecx, ebx
shl r10, cl
add r10, rdx
cmp r10, r13
jae 0x14009a64e
mov rcx, qword [rbp + r10*8]
shr rcx, 0x2a
cmp ecx, 0x3fffff
jae 0x14009a540
cmp r9d, r8d
je 0x14009a619
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 0x14009a64e
cmp r11, r13
jae 0x14009a64e
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 0x14009a5b0
cmp r12, r10
jbe 0x14009a64e
cmp rax, r12
jae 0x14009a64e
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 0x14009a52a
jmp 0x14009a64e
test r12, r12
je 0x14009a650
cmp r12, r11
ja 0x14009a64e
movzx eax, byte [0x141ada129]
xor ecx, ecx
mov rdx, r14
call fcn.14014fee0
mov r15, rax
test rax, rax
jne 0x14009a659
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 0x14009a67b
mov dword [rsi + rax*4], ecx
inc rax
cmp rax, r12
je 0x14009a6a3
cmp rax, r12
je 0x14009a64e
mov edx, dword [r15 + rax*4]
cmp edx, eax
je 0x14009a673
nop dword [rax + rax]
mov ecx, edx
mov edx, edx
cmp r12, rdx
jbe 0x14009a64e
mov edx, dword [r15 + rdx*4]
cmp edx, eax
jne 0x14009a690
jmp 0x14009a670
mov rax, qword [rdi + 0x150]
test rax, rax
je 0x14009a70e
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 0x14009a64e
mov r10, qword [rbp + r9*8]
mov r11, r10
shr r11, 0x2b
cmp r11, r12
jae 0x14009a64e
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 0x14009a6d0
cmp rdx, r12
jne 0x14009a6c0
mov rax, qword [rdi + 0x40]
test rax, rax
je 0x14009a73f
mov rcx, qword [rdi + 0x38]
xor edx, edx
nop dword [rax]
mov r8d, dword [rcx + rdx*4]
cmp r12, r8
jbe 0x14009a64e
mov r8d, dword [rsi + r8*4]
mov dword [rcx + rdx*4], r8d
inc rdx
cmp rax, rdx
jne 0x14009a720
jmp 0x14009a744
test r12, r12
je 0x14009a766
mov rcx, qword [0x141ada118]
xor edx, edx
mov r8, r15
call fcn.1401cdfe4
mov rcx, qword [0x141ada118]
xor edx, edx
mov r8, rsi
call fcn.1401cdfe4
nop
add rsp, 0x38
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret