Function at 0x140014fa9
Capabilities:
Encode data using base64

Disassembly:
push rbp
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbx
sub rsp, 0xf8
lea rbp, [rsp + 0x80]
mov qword [rbp + 0x70], 0xfffffffffffffffe
mov r12, rcx
xorps xmm0, xmm0
lea rcx, [rbp + 0x24]
movaps xmmword [rcx - 0x24], xmm0
movaps xmm0, xmmword [0x140071610]
movaps xmmword [rcx - 0x14], xmm0
mov dword [rcx - 4], 0xc3d2e1f0
mov r13, qword [rdx]
mov r14, qword [rdx + 8]
cmp r14, 0x40
mov ebx, 0x40
mov edi, 0x40
cmovb rdi, r14
mov rdx, r13
mov r8, rdi
call fcn.14002f720
lea rax, [rbp + 0x10]
mov qword [rax - 0x10], rdi
cmp r14, 0x40
jb 0x140015091
lea r15, [rbp - 0x60]
mov esi, 0x40
mov qword [rbp], 0
xor eax, eax
mov ecx, dword [rbp + rax*4 + 0x24]
bswap ecx
mov dword [rbp + rax*4 - 0x60], ecx
inc rax
cmp rax, 0x10
jne 0x140015031
lea rcx, [rbp + 0x10]
mov rdx, r15
call fcn.140016985
sub r14, rsi
inc qword [rbp + 8]
add r13, rsi
mov rax, qword [rbp]
mov esi, 0x40
sub rsi, rax
cmp rsi, r14
cmovae rsi, r14
lea rcx, [rax + rbp]
add rcx, 0x24
mov rdx, r13
mov r8, rsi
call fcn.14002f720
mov rdi, qword [rbp]
add rdi, rsi
mov qword [rbp], rdi
cmp rdi, 0x40
je 0x140015027
sub rbx, rdi
cmp rbx, 0x24
mov esi, 0x24
cmovae rbx, rsi
lea rcx, [rbp + rdi + 0x24]
lea rdi, str.258EAFA5_E914_47DA_95CA_C5AB0DC85B11
mov rdx, rdi
mov r8, rbx
call fcn.14002f720
mov rax, qword [rbp]
add rax, rbx
cmp rax, 0x40
lea r14, [rbp + 0x10]
jne 0x140015136
lea r15, [rbp - 0x60]
mov qword [rbp], 0
xor eax, eax
mov ecx, dword [rbp + rax*4 + 0x24]
bswap ecx
mov dword [rbp + rax*4 - 0x60], ecx
inc rax
cmp rax, 0x10
jne 0x1400150d7
mov rcx, r14
mov rdx, r15
call fcn.140016985
sub rsi, rbx
inc qword [rbp + 8]
add rdi, rbx
mov rax, qword [rbp]
mov ebx, 0x40
sub rbx, rax
cmp rbx, rsi
cmovae rbx, rsi
lea rcx, [rax + rbp]
add rcx, 0x24
mov rdx, rdi
mov r8, rbx
call fcn.14002f720
mov rax, qword [rbp]
add rax, rbx
mov qword [rbp], rax
cmp rax, 0x40
je 0x1400150cd
mov rsi, qword [rbp + 8]
shl rsi, 6
add rsi, rax
lea rdi, [rax + 1]
mov qword [rbp], rdi
mov byte [rbp + rax + 0x24], 0x80
cmp rdi, 0x3f
ja 0x140015176
mov rcx, rbp
add rcx, rax
add rcx, 0x25
mov r8d, 0x3f
sub r8, rax
xor edx, edx
call fcn.14002f600
mov qword [rbp], 0x40
shl rsi, 3
xor eax, eax
mov ecx, dword [rbp + rax*4 + 0x24]
bswap ecx
mov dword [rbp + rax*4 - 0x60], ecx
inc rax
cmp rax, 0x10
jne 0x14001517c
cmp rdi, 0x39
jb 0x1400151b8
lea rdx, [rbp - 0x60]
mov rcx, r14
call fcn.140016985
xorps xmm0, xmm0
movaps xmmword [rbp - 0x40], xmm0
movaps xmmword [rbp - 0x50], xmm0
movaps xmmword [rbp - 0x60], xmm0
mov qword [rbp - 0x30], 0
ror rsi, 0x20
lea rdx, [rbp - 0x60]
mov qword [rdx + 0x38], rsi
mov rcx, r14
call fcn.140016985
xor eax, eax
mov ecx, dword [rbp + rax*4 + 0x10]
bswap ecx
mov dword [rbp + rax*4 - 0x20], ecx
inc rax
cmp rax, 5
jne 0x1400151ce
movzx eax, byte [r12]
cmp rax, 0x1b
ja 0x140015203
mov r8d, 0x1c
sub r8, rax
lea rcx, [r12 + rax]
inc rcx
xor edx, edx
call fcn.14002f600
lea rcx, [rbp - 0x20]
mov byte [r12], 0x1c
mov byte [r12 + 0x1d], 0
xor edx, edx
lea rax, str.ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_
movzx edi, byte [rcx]
mov rbx, rdi
shr rbx, 2
mov bl, byte [rbx + rax]
mov byte [r12 + rdx*4 + 1], bl
shl edi, 4
and edi, 0x30
movzx esi, byte [rcx + 1]
mov rbx, rsi
shr rbx, 4
or rbx, rdi
mov bl, byte [rax + rbx]
mov byte [r12 + rdx*4 + 2], bl
movzx edi, byte [rcx + 2]
mov rbx, rdi
shr rbx, 6
and esi, 0xf
lea rbx, [rbx + rsi*4]
mov bl, byte [rax + rbx]
mov byte [r12 + rdx*4 + 3], bl
and edi, 0x3f
mov bl, byte [rdi + rax]
mov byte [r12 + rdx*4 + 4], bl
inc rdx
add rcx, 3
cmp rdx, 6
jne 0x14001521b
movzx ecx, byte [rbp - 0xe]
mov rdx, rcx
shr rdx, 2
mov dl, byte [rdx + rax]
mov byte [r12 + 0x19], dl
shl ecx, 4
and ecx, 0x30
movzx ebx, byte [rbp - 0xd]
mov rdx, rbx
shr rdx, 4
or rdx, rcx
mov cl, byte [rax + rdx]
mov byte [r12 + 0x1a], cl
and ebx, 0xf
mov al, byte [rax + rbx*4]
mov byte [r12 + 0x1b], al
mov byte [r12 + 0x1c], 0x3d
movzx eax, byte [r12]
cmp rax, 0x1b
ja 0x1400152dd
mov r8d, 0x1c
sub r8, rax
lea rcx, [r12 + rax]
inc rcx
xor edx, edx
call fcn.14002f600
mov byte [r12], 0x1c
mov byte [r12 + 0x1d], 0
add rsp, 0xf8
pop rbx
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
pop rbp
ret