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

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x2f8
lea rsi, [rsp + 0x70]
mov qword [rsp + 0x348], rdx
xor edx, edx
mov rax, qword [rcx + rdx]
bswap rax
mov qword [rsi + rdx], rax
add rdx, 8
cmp rdx, 0x80
jne 0x6f58d8a2
lea r10, [rsi + 0x200]
mov r9, rsi
mov rax, qword [r9 + 0x70]
mov rcx, qword [r9 + 8]
add r9, 8
mov rdx, rax
mov r8, rax
shr rax, 6
rol r8, 3
ror rdx, 0x13
xor rdx, r8
mov r8, rcx
xor rdx, rax
mov rax, qword [r9 - 8]
add rax, qword [r9 + 0x40]
ror r8, 8
add rdx, rax
mov rax, rcx
shr rcx, 7
ror rax, 1
xor rax, r8
xor rax, rcx
add rax, rdx
mov qword [r9 + 0x78], rax
cmp r10, r9
jne 0x6f58d8c4
mov rax, qword [rsp + 0x348]
mov rbx, qword [rsp + 0x348]
movabs r14, 0xab1c5ed5da6d8118
mov qword [rsp + 0x28], r14
movabs r14, 0x923f82a4af194f9b
lea rdi, [0x6f7343a0]
mov qword [rsp + 0x20], r14
movabs r14, 0x59f111f1b605d019
movabs rbp, 0xb5c0fbcfec4d3b2f
mov r8, qword [rax]
mov rcx, qword [rax + 8]
movabs r13, 0x7137449123ef65cd
mov rdx, qword [rax + 0x10]
mov r9, qword [rbx + 0x20]
movabs r12, 0x428a2f98d728ae22
mov r10, qword [rbx + 0x28]
mov r11, qword [rbx + 0x30]
mov rax, qword [rax + 0x18]
mov rbx, qword [rbx + 0x38]
mov r15, r8
mov qword [rsp + 0x18], r14
movabs r14, 0x3956c25bf348b538
mov qword [rsp + 0x30], r8
mov qword [rsp + 0x10], r14
movabs r14, 0xe9b5dba58189dbbc
mov r8, rbp
mov qword [rsp + 8], r14
mov rbp, rdi
mov qword [rsp + 0x38], rcx
mov qword [rsp + 0x40], rdx
mov qword [rsp + 0x48], rax
mov r14, rcx
mov qword [rsp + 0x50], r9
mov qword [rsp + 0x58], r10
mov rdi, rdx
mov qword [rsp + 0x60], r11
mov qword [rsp + 0x68], rbx
jmp 0x6f58da2d
mov rcx, qword [rbp + 0x18]
mov r12, qword [rbp]
add rbp, 0x40
mov r13, qword [rbp - 0x38]
mov r8, qword [rbp - 0x30]
mov qword [rsp + 8], rcx
mov rcx, qword [rbp - 0x20]
mov qword [rsp + 0x10], rcx
mov rcx, qword [rbp - 0x18]
mov qword [rsp + 0x18], rcx
mov rcx, qword [rbp - 0x10]
mov qword [rsp + 0x20], rcx
mov rcx, qword [rbp - 8]
mov qword [rsp + 0x28], rcx
mov rcx, r9
mov rdx, r9
ror rcx, 0xe
ror rdx, 0x12
xor rdx, rcx
mov rcx, r9
rol rcx, 0x17
xor rdx, rcx
mov rcx, r10
xor rcx, r11
and rcx, r9
xor rcx, r11
add r11, qword [rsi + 8]
add rcx, rdx
add rcx, qword [rsi]
mov rdx, r15
rol rdx, 0x1e
add rbx, rcx
lea rcx, [rbx + r12]
mov rbx, r15
mov r12, r15
ror rbx, 0x1c
and r12, r14
xor rdx, rbx
mov rbx, r15
add rax, rcx
rol rbx, 0x19
xor rdx, rbx
mov rbx, r15
or rbx, r14
and rbx, rdi
or rbx, r12
add rbx, rdx
mov rdx, rax
add rbx, rcx
mov rcx, r9
ror rdx, 0x12
xor rcx, r10
and rcx, rax
xor rcx, r10
add r11, rcx
mov rcx, rax
ror rcx, 0xe
xor rdx, rcx
mov rcx, rax
rol rcx, 0x17
xor rdx, rcx
mov rcx, rbx
add r10, qword [rsi + 0x10]
add rdx, r11
rol rcx, 0x1e
mov r11, rbx
add r13, rdx
mov rdx, rbx
and r11, r15
ror rdx, 0x1c
add rdi, r13
xor rcx, rdx
mov rdx, rbx
rol rdx, 0x19
xor rcx, rdx
mov rdx, rbx
or rdx, r15
and rdx, r14
or rdx, r11
mov r11, rax
xor r11, r9
add rdx, rcx
mov rcx, rdi
and r11, rdi
ror rcx, 0x12
add rdx, r13
xor r11, r9
add r10, r11
mov r11, rdi
ror r11, 0xe
xor rcx, r11
mov r11, rdi
rol r11, 0x17
xor rcx, r11
mov r11, rbx
add rcx, r10
mov r10, rdx
add r8, rcx
mov rcx, rdx
rol r10, 0x1e
ror rcx, 0x1c
add r14, r8
xor r10, rcx
mov rcx, rdx
rol rcx, 0x19
xor r10, rcx
mov rcx, rbx
and r11, rdx
or rcx, rdx
add r9, qword [rsi + 0x18]
and rcx, r15
or rcx, r11
mov r11, rdx
add rcx, r10
mov r10, rax
xor r10, rdi
add rcx, r8
mov r8, r14
and r10, r14
ror r8, 0x12
and r11, rcx
xor r10, rax
add r10, r9
mov r9, r14
ror r9, 0xe
xor r8, r9
mov r9, r14
rol r9, 0x17
xor r8, r9
mov r9, qword [rsp + 8]
add r8, r10
mov r10, rcx
rol r10, 0x1e
add r9, r8
mov r8, rcx
ror r8, 0x1c
add r15, r9
xor r10, r8
mov r8, rcx
rol r8, 0x19
xor r10, r8
mov r8, rdx
or r8, rcx
and r8, rbx
or r8, r11
mov r11, rcx
add r8, r10
mov r10, rdi
xor r10, r14
add r8, r9
mov r9, r15
and r10, r15
add rax, qword [rsi + 0x20]
ror r9, 0xe
xor r10, rdi
and r11, r8
add rdi, qword [rsi + 0x28]
add r10, rax
mov rax, r15
ror rax, 0x12
xor rax, r9
mov r9, r15
rol r9, 0x17
xor rax, r9
mov r9, qword [rsp + 0x10]
add rax, r10
mov r10, r8
ror r10, 0x1c
add r9, rax
mov rax, r8
rol rax, 0x1e
add rbx, r9
xor r10, rax
mov rax, r8
rol rax, 0x19
xor r10, rax
mov rax, rcx
or rax, r8
and rax, rdx
or rax, r11
add rax, r10
mov r10, rbx
add rax, r9
mov r9, r14
ror r10, 0x12
xor r9, r15
and r9, rbx
xor r9, r14
add rdi, r9
mov r9, rbx
ror r9, 0xe
xor r9, r10
mov r10, rbx
rol r10, 0x17
xor r9, r10
mov r10, r8
add r14, qword [rsi + 0x30]
add rdi, r9
mov r9, qword [rsp + 0x18]
and r10, rax
add r9, rdi
mov rdi, rax
lea r11, [rdx + r9]
mov rdx, rax
rol rdi, 0x1e
ror rdx, 0x1c
xor rdx, rdi
mov rdi, rax
rol rdi, 0x19
xor rdx, rdi
mov rdi, r8
or rdi, rax
and rdi, rcx
or rdi, r10
add rdi, rdx
mov rdx, r15
xor rdx, rbx
add rdi, r9
mov r9, r11
and rdx, r11
ror r9, 0x12
xor rdx, r15
add r14, rdx
mov rdx, r11
ror rdx, 0xe
xor rdx, r9
mov r9, r11
rol r9, 0x17
xor rdx, r9
mov r9, rax
add rdx, r14
add rdx, qword [rsp + 0x20]
mov r14, rdi
ror r14, 0x1c
lea r10, [rcx + rdx]
mov rcx, rdi
rol rcx, 0x1e
xor r14, rcx
mov rcx, rdi
rol rcx, 0x19
xor r14, rcx
mov rcx, rax
or rcx, rdi
and rcx, r8
and r9, rdi
add r15, qword [rsi + 0x38]
or rcx, r9
add rsi, 0x40
add r14, rcx
mov rcx, r10
add r14, rdx
mov rdx, rbx
ror rcx, 0x12
xor rdx, r11
and rdx, r10
xor rdx, rbx
add r15, rdx
mov rdx, r10
ror rdx, 0xe
xor rdx, rcx
mov rcx, r10
rol rcx, 0x17
xor rdx, rcx
mov rcx, r14
add rdx, r15
mov r15, r14
add rdx, qword [rsp + 0x28]
rol rcx, 0x1e
ror r15, 0x1c
xor r15, rcx
mov rcx, r14
rol rcx, 0x19
xor rcx, r15
mov r15, rdi
lea r9, [r8 + rdx]
or r15, r14
mov r8, rdi
and r15, rax
and r8, r14
or r15, r8
add r15, rcx
lea rcx, [0x6f7345e0]
add r15, rdx
cmp rcx, rbp
jne 0x6f58d9f0
mov rdx, rdi
mov rcx, r14
mov r8, qword [rsp + 0x30]
add rcx, qword [rsp + 0x38]
add rdx, qword [rsp + 0x40]
add rax, qword [rsp + 0x48]
add r9, qword [rsp + 0x50]
add r10, qword [rsp + 0x58]
add r11, qword [rsp + 0x60]
add r8, r15
add rbx, qword [rsp + 0x68]
mov rsi, qword [rsp + 0x348]
mov qword [rsi], r8
mov qword [rsi + 8], rcx
mov qword [rsi + 0x10], rdx
mov qword [rsi + 0x18], rax
mov qword [rsi + 0x20], r9
mov qword [rsi + 0x28], r10
mov qword [rsi + 0x30], r11
mov qword [rsi + 0x38], rbx
add rsp, 0x2f8
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret