Function at 0x8ebf70
Capabilities:
Encode data using base64
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x58
mov rbp, qword [rsp + 0xc0]
mov eax, r8d
mov r13d, r8d
mov r14, rdx
mov rsi, rcx
sub eax, r9d
xor r13d, r9d
mov rcx, qword [rcx]
mov r15d, r8d
mov edx, eax
lea r10, [rsi + 0x10]
xor edx, r9d
or r13d, edx
mov edx, ecx
xor r13d, r8d
and edx, 0x7f
sar r13d, 0x1f
mov r11d, edx
and eax, r13d
lea r8d, [r9 + rax]
lea rbx, [rcx + r8]
mov rax, r8
xor rcx, r8
mov r13, r8
xor rax, rbx
mov qword [rsi], rbx
or rax, rcx
mov rcx, rbx
xor rax, rbx
shr rcx, 0x3d
shr rax, 0x3f
add rax, qword [rsi + 8]
mov qword [rsi + 8], rax
shl rax, 3
or rax, rcx
bswap rax
mov qword [rsp + 0x40], rax
lea rax, [rbx*8]
and ebx, 0x7f
lea r12d, [rbx - 0x70]
mov ecx, ebx
xor ecx, 0x70
xor r12d, 0x70
or r12d, ecx
lea rcx, [r10 + r11]
xor r12d, ebx
bswap rax
sar r12d, 0x1f
mov qword [rsp + 0x48], rax
mov eax, 0xf0
sub eax, ebx
and r12d, 0x80
sub eax, r12d
mov dword [rsp + 0x2c], eax
mov eax, pe_nt_image_headers64
sub eax, edx
cmp eax, 8
jae 0x8ec070
test al, 4
jne 0x8ec257
test eax, eax
je 0x8ec09c
mov byte [rcx], 0
test al, 2
je 0x8ec09c
xor r8d, r8d
mov word [rcx + rax - 2], r8w
jmp 0x8ec09c
lea rdi, [rcx + 8]
mov r8d, eax
mov qword [rcx], 0
mov qword [rcx + r8 - 8], 0
and rdi, 0xfffffffffffffff8
sub rcx, rdi
add ecx, eax
mov eax, ecx
shr eax, 3
mov ecx, eax
xor eax, eax
rep stosq qword [rdi], rax
mov eax, dword [rsp + 0x2c]
lea r8d, [r15 + 0x80]
lea r12d, [r12 + rbx - 0xf0]
mov dword [rsp + 0xb0], r15d
add r8, 0x10
mov qword [rbp], 0
sub r12d, r13d
xor ebx, ebx
lea r9d, [r13 + rax]
lea eax, [r13 + rax + 0x10]
mov r15, r8
mov qword [rbp + 8], 0
mov qword [rbp + 0x10], 0
mov r8d, dword [rsp + 0xb0]
mov qword [rbp + 0x18], 0
mov qword [rbp + 0x20], 0
mov qword [rbp + 0x28], 0
mov qword [rbp + 0x30], 0
mov qword [rbp + 0x38], 0
mov dword [rsp + 0x3c], eax
jmp 0x8ec132
mov eax, ebx
add r12d, 1
cmp rax, r15
jae 0x8ec246
mov r11d, edx
mov eax, r13d
xor edi, edi
xor eax, ebx
cmp r8d, ebx
jbe 0x8ec157
mov edi, dword [rsp + 0x2c]
add r14, 1
add edi, r12d
xor edi, r13d
or edi, eax
xor edi, ebx
sar edi, 0x1f
and dil, byte [r14 - 1]
mov ecx, eax
sub eax, 1
not ecx
and eax, ecx
sar eax, 0x1f
and eax, 0x80
or eax, edi
cmp edx, 0x6f
jbe 0x8ec18c
mov ecx, ebx
mov edi, r9d
xor edi, r12d
xor ecx, r9d
or ecx, edi
lea edi, [rdx - 0x70]
xor ecx, ebx
sar ecx, 0x1f
not ecx
and cl, byte [rsp + rdi + 0x40]
or eax, ecx
add edx, 1
xor byte [rsi + r11 + 0x10], al
add ebx, 1
cmp edx, 0x80
jne 0x8ec120
mov rdx, r10
mov rcx, rsi
mov dword [rsp + 0x38], r9d
mov dword [rsp + 0xb0], r8d
mov qword [rsp + 0x30], r10
call fcn.008eb530
mov r10, qword [rsp + 0x30]
xor eax, eax
lea rdi, [r10 + 8]
mov rcx, r10
mov qword [r10], 0
and rdi, 0xfffffffffffffff8
mov qword [r10 + 0x78], 0
sub rcx, rdi
sub ecx, 0xffffff80
shr ecx, 3
rep stosq qword [rdi], rax
mov eax, dword [rsp + 0x3c]
mov r9d, dword [rsp + 0x38]
mov r8d, dword [rsp + 0xb0]
xor eax, ebx
mov ecx, eax
sub eax, 1
not ecx
and ecx, eax
sar ecx, 0x1f
mov rax, rcx
shl rax, 0x20
or rcx, rax
xor eax, eax
nop dword [rax]
mov rdx, qword [rsi + rax + 0x90]
and rdx, rcx
bswap rdx
xor qword [rbp + rax], rdx
add rax, 8
cmp rax, 0x40
jne 0x8ec218
mov eax, ebx
xor edx, edx
add r12d, 1
cmp rax, r15
jb 0x8ec12f
add rsp, 0x58
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
mov dword [rcx], 0
mov dword [rcx + rax - 4], 0
jmp 0x8ec09c