Function at 0x140070270
Capabilities:
Encode data using xor
Hash data using sha512

Disassembly:
mov qword [rsp + 8], rcx
push rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x58
mov rdi, rcx
mov ecx, 0x80
call fcn.14006b270
xorps xmm0, xmm0
mov rcx, rax
mov rbx, rax
movups xmmword [rax], xmm0
movups xmmword [rax + 0x10], xmm0
movups xmmword [rax + 0x20], xmm0
movups xmmword [rax + 0x30], xmm0
movups xmmword [rax + 0x40], xmm0
movups xmmword [rax + 0x50], xmm0
movups xmmword [rax + 0x60], xmm0
movups xmmword [rax + 0x70], xmm0
mov rdx, qword [rdi]
mov r8, qword [rdi + 8]
sub r8, rdx
call sub.VCRUNTIME140.dll_memmove
lea r14, [rbx + 0x40]
mov r8d, 0x40
mov rcx, r14
lea rdx, [0x1400942e0]
call sub.VCRUNTIME140.dll_memmove
mov rax, qword [rdi + 0x30]
lea rsi, [0x140094223]
mov qword [rsp + 0xa8], rsi
mov rcx, qword [rax]
xor qword [rbx + 0x60], rcx
mov rax, qword [rdi + 0x30]
mov rcx, qword [rax + 8]
xor qword [rbx + 0x68], rcx
mov rax, qword [rdi + 0x30]
mov rcx, qword [rax + 0x10]
xor qword [rbx + 0x70], rcx
mov rax, qword [rdi + 0x30]
mov rcx, qword [rax + 0x18]
xor qword [rbx + 0x78], rcx
mov rcx, qword [rdi + 0x18]
movzx eax, byte [rsi - 2]
mov r10, qword [rcx + rax*8]
movzx eax, byte [rsi - 3]
mov r8, qword [rcx + rax*8]
add r8, qword [rbx]
add r8, qword [rbx + 0x20]
mov rcx, qword [r14]
mov r9, r8
xor r9, qword [rbx + 0x60]
ror r9, 0x20
add rcx, r9
mov r11, rcx
xor r11, qword [rbx + 0x20]
ror r11, 0x18
lea rax, [r11 + r8]
add rax, r10
mov qword [rbx], rax
mov qword [rsp + 0xb0], rax
xor rax, r9
ror rax, 0x10
mov qword [rbx + 0x60], rax
mov qword [rsp + 0xb8], rax
add rax, rcx
mov qword [r14], rax
xor r11, rax
mov qword [rsp + 0x28], rax
rol r11, 1
mov qword [rbx + 0x20], r11
mov rcx, qword [rdi + 0x18]
movzx eax, byte [rsi]
mov r10, qword [rbx + 0x28]
mov qword [rsp + 0x30], r11
mov r13, qword [rcx + rax*8]
movzx eax, byte [rsi - 1]
mov rdx, qword [rcx + rax*8]
mov rcx, qword [rbx + 0x48]
add rdx, r10
add rdx, qword [rbx + 8]
add r13, rdx
mov r8, rdx
xor r8, qword [rbx + 0x68]
ror r8, 0x20
add rcx, r8
xor r10, rcx
ror r10, 0x18
add r13, r10
mov qword [rbx + 8], r13
mov rax, r13
xor rax, r8
ror rax, 0x10
mov qword [rbx + 0x68], rax
mov qword [rsp + 0x20], rax
add rax, rcx
mov qword [rbx + 0x48], rax
mov r14, rax
xor r14, r10
mov qword [rsp + 0x40], rax
rol r14, 1
mov qword [rbx + 0x28], r14
mov rcx, qword [rdi + 0x18]
movzx eax, byte [rsi + 2]
mov r10, qword [rbx + 0x30]
mov r12, qword [rcx + rax*8]
movzx eax, byte [rsi + 1]
mov rdx, qword [rcx + rax*8]
mov rcx, qword [rbx + 0x50]
add rdx, r10
add rdx, qword [rbx + 0x10]
add r12, rdx
mov r8, rdx
xor r8, qword [rbx + 0x70]
ror r8, 0x20
add rcx, r8
xor r10, rcx
ror r10, 0x18
add r12, r10
mov rax, r12
mov qword [rbx + 0x10], r12
xor rax, r8
ror rax, 0x10
mov qword [rbx + 0x70], rax
lea rdi, [rax + rcx]
mov rcx, qword [rsp + 0xa0]
mov rbp, rdi
mov qword [rbx + 0x50], rdi
xor rbp, r10
mov qword [rsp + 0x38], rax
rol rbp, 1
mov qword [rbx + 0x30], rbp
mov rcx, qword [rcx + 0x18]
movzx eax, byte [rsi + 4]
mov r15, qword [rcx + rax*8]
movzx eax, byte [rsi + 3]
mov r8, qword [rcx + rax*8]
add r8, qword [rbx + 0x18]
add r8, qword [rbx + 0x38]
mov rcx, qword [rbx + 0x58]
add r15, r8
mov rax, qword [rsp + 0xa0]
mov r9, r8
xor r9, qword [rbx + 0x78]
ror r9, 0x20
add rcx, r9
mov r10, rcx
xor r10, qword [rbx + 0x38]
ror r10, 0x18
add r15, r10
mov qword [rbx + 0x18], r15
mov r8, r15
xor r8, r9
ror r8, 0x10
mov qword [rbx + 0x78], r8
lea r11, [r8 + rcx]
mov qword [rbx + 0x58], r11
mov rsi, r11
xor rsi, r10
mov r10, qword [rsp + 0xa8]
rol rsi, 1
mov qword [rbx + 0x38], rsi
mov rcx, qword [rax + 0x18]
movzx eax, byte [r10 + 6]
mov rdx, qword [rcx + rax*8]
movzx eax, byte [r10 + 5]
mov rax, qword [rcx + rax*8]
add rax, qword [rsp + 0xb0]
add rax, r14
mov rcx, rax
add rax, rdx
xor rcx, r8
ror rcx, 0x20
lea r8, [rcx + rdi]
mov rdi, qword [rsp + 0xa0]
xor r14, r8
ror r14, 0x18
add rax, r14
mov qword [rbx], rax
mov qword [rsp + 0xb0], rax
xor rax, rcx
ror rax, 0x10
mov qword [rbx + 0x78], rax
lea rcx, [rax + r8]
mov qword [rbx + 0x50], rcx
xor rcx, r14
rol rcx, 1
mov qword [rbx + 0x28], rcx
mov rcx, qword [rdi + 0x18]
movzx eax, byte [r10 + 8]
mov r9, qword [rcx + rax*8]
movzx eax, byte [r10 + 7]
mov rax, qword [rcx + rax*8]
add rax, rbp
add rax, r13
mov rdx, rax
xor rdx, qword [rsp + 0xb8]
ror rdx, 0x20
lea rcx, [r9 + rax]
lea r8, [rdx + r11]
xor rbp, r8
ror rbp, 0x18
add rcx, rbp
mov qword [rbx + 8], rcx
xor rcx, rdx
lea r14, [rbx + 0x40]
ror rcx, 0x10
mov qword [rbx + 0x60], rcx
lea rax, [rcx + r8]
mov r8, qword [rsp + 0x28]
mov qword [rbx + 0x58], rax
xor rax, rbp
rol rax, 1
mov qword [rbx + 0x30], rax
movzx eax, byte [r10 + 0xa]
mov rcx, qword [rdi + 0x18]
mov r9, qword [rcx + rax*8]
movzx eax, byte [r10 + 9]
mov rax, qword [rcx + rax*8]
add rax, rsi
add rax, r12
mov rdx, rax
xor rdx, qword [rsp + 0x20]
ror rdx, 0x20
lea rcx, [r9 + rax]
add r8, rdx
xor rsi, r8
ror rsi, 0x18
add rcx, rsi
mov qword [rbx + 0x10], rcx
xor rcx, rdx
ror rcx, 0x10
mov qword [rbx + 0x68], rcx
lea rbp, [rcx + r8]
mov r8, qword [rsp + 0x40]
mov qword [r14], rbp
mov rax, rbp
xor rax, rsi
mov rsi, r10
rol rax, 1
add rsi, 0x10
mov qword [rbx + 0x38], rax
movzx eax, byte [r10 + 0xc]
mov rcx, qword [rdi + 0x18]
mov qword [rsp + 0xa8], rsi
mov r9, qword [rcx + rax*8]
movzx eax, byte [r10 + 0xb]
mov rax, qword [rcx + rax*8]
add rax, r15
add rax, qword [rsp + 0x30]
mov rdx, rax
xor rdx, qword [rsp + 0x38]
ror rdx, 0x20
lea rcx, [r9 + rax]
add r8, rdx
mov r10, r8
xor r10, qword [rsp + 0x30]
ror r10, 0x18
add rcx, r10
mov qword [rbx + 0x18], rcx
xor rcx, rdx
ror rcx, 0x10
mov qword [rbx + 0x70], rcx
lea rax, [rcx + r8]
mov qword [rbx + 0x48], rax
xor rax, r10
rol rax, 1
mov qword [rbx + 0x20], rax
lea rax, [0x1400942e3]
cmp rsi, rax
jl 0x140070320
mov rax, qword [rdi]
mov edx, 0x80
xor rbp, qword [rsp + 0xb0]
xor qword [rax], rbp
mov rcx, qword [rdi]
mov rax, qword [rbx + 8]
xor rax, qword [rcx + 8]
xor rax, qword [rbx + 0x48]
mov qword [rcx + 8], rax
mov rcx, qword [rdi]
mov rax, qword [rbx + 0x10]
xor rax, qword [rbx + 0x50]
xor qword [rcx + 0x10], rax
mov rcx, qword [rdi]
mov rax, qword [rbx + 0x18]
xor rax, qword [rbx + 0x58]
xor qword [rcx + 0x18], rax
mov rcx, qword [rdi]
mov rax, qword [rbx + 0x60]
xor rax, qword [rbx + 0x20]
xor qword [rcx + 0x20], rax
mov rcx, qword [rdi]
mov rax, qword [rbx + 0x68]
xor rax, qword [rbx + 0x28]
xor qword [rcx + 0x28], rax
mov rcx, qword [rdi]
mov rax, qword [rbx + 0x70]
xor rax, qword [rbx + 0x30]
xor qword [rcx + 0x30], rax
mov rcx, qword [rdi]
mov rax, qword [rbx + 0x78]
xor rax, qword [rbx + 0x38]
xor qword [rcx + 0x38], rax
mov rcx, rbx
add rsp, 0x58
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
jmp fcn.14006b2ac