Function at 0x8eb530
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 r8, [rsp + 0x70]
mov qword [rsp + 0x340], rcx
lea r9, [rsp + 0xf0]
mov rcx, rdx
mov rdx, r8
nop
add rdx, 8
add rcx, 8
mov rax, qword [rcx - 8]
bswap rax
mov qword [rdx - 8], rax
cmp rdx, r9
jne 0x8eb560
mov rbx, r8
lea r11, [rsp + 0x270]
mov r9, r8
nop word cs:[rax + rax]
mov rax, qword [r9 + 0x70]
mov r10, qword [r9 + 8]
add r9, 8
mov rdx, rax
mov rcx, rax
shr rax, 6
rol rcx, 3
ror rdx, 0x13
xor rdx, rcx
mov rcx, rdx
xor rcx, rax
mov rax, qword [r9 - 8]
add rax, qword [r9 + 0x40]
lea rdx, [rcx + rax]
mov rax, r10
mov rcx, r10
shr r10, 7
ror rax, 1
ror rcx, 8
xor rax, rcx
xor rax, r10
add rax, rdx
mov qword [r9 + 0x78], rax
cmp r11, r9
jne 0x8eb590
mov rax, qword [rsp + 0x340]
lea r14, [r8 + 0x280]
mov rdi, qword [rsp + 0x340]
movabs rbp, 0xb5c0fbcfec4d3b2f
movabs r13, 0x7137449123ef65cd
mov qword [rsp + 0x28], r14
mov r15, qword [rax + 0xa8]
mov r11, qword [rax + 0x90]
mov r10, qword [rax + 0x98]
mov r9, qword [rax + 0xa0]
mov qword [rsp + 0x48], r15
mov r8, r15
movabs r15, 0xab1c5ed5da6d8118
mov rcx, qword [rax + 0xb0]
mov qword [rsp + 0x20], r15
mov rdx, qword [rax + 0xb8]
movabs r15, 0x923f82a4af194f9b
mov qword [rsp + 0x18], r15
mov rsi, qword [rdi + 0xc8]
movabs r15, 0x59f111f1b605d019
lea rdi, [0x02422620]
mov qword [rsp + 0x10], r15
mov rax, qword [rax + 0xc0]
movabs r15, 0x3956c25bf348b538
mov qword [rsp + 8], r15
movabs r15, 0xe9b5dba58189dbbc
mov qword [rsp], r15
movabs r15, 0x428a2f98d728ae22
mov qword [rsp + 0x30], r11
mov qword [rsp + 0x38], r10
mov qword [rsp + 0x40], r9
mov qword [rsp + 0x50], rcx
mov qword [rsp + 0x58], rdx
mov qword [rsp + 0x60], rax
mov qword [rsp + 0x68], rsi
jmp 0x8eb71b
mov r14, qword [rdi + 0x18]
mov r15, qword [rdi]
add rdi, 0x40
mov r13, qword [rdi - 0x38]
mov rbp, qword [rdi - 0x30]
mov qword [rsp], r14
mov r14, qword [rdi - 0x20]
mov qword [rsp + 8], r14
mov r14, qword [rdi - 0x18]
mov qword [rsp + 0x10], r14
mov r14, qword [rdi - 0x10]
mov qword [rsp + 0x18], r14
mov r14, qword [rdi - 8]
mov qword [rsp + 0x20], r14
mov r12, rcx
mov r14, rcx
ror r12, 0x12
ror r14, 0xe
xor r14, r12
mov r12, rcx
rol r12, 0x17
xor r14, r12
mov r12, rdx
xor r12, rax
and r12, rcx
xor r12, rax
add rax, qword [rbx + 8]
add r12, r14
add r12, qword [rbx]
mov r14, r11
add rsi, r12
ror r14, 0x1c
lea r12, [rsi + r15]
mov rsi, r11
mov r15, r11
rol rsi, 0x1e
and r15, r10
add r8, r12
xor r14, rsi
mov rsi, r11
rol rsi, 0x19
xor r14, rsi
mov rsi, r11
or rsi, r10
and rsi, r9
or rsi, r15
add rsi, r14
mov r14, r8
add rsi, r12
mov r12, rcx
ror r14, 0x12
xor r12, rdx
and r12, r8
xor r12, rdx
add rax, r12
mov r12, r8
ror r12, 0xe
xor r12, r14
mov r14, r8
rol r14, 0x17
xor r12, r14
mov r14, rsi
add rdx, qword [rbx + 0x10]
add rax, r12
mov r12, rsi
and r14, r11
add r13, rax
mov rax, rsi
rol r12, 0x1e
ror rax, 0x1c
add r9, r13
xor r12, rax
mov rax, rsi
rol rax, 0x19
xor r12, rax
mov rax, rsi
or rax, r11
and rax, r10
or rax, r14
add rax, r12
mov r12, r8
xor r12, rcx
add rax, r13
mov r13, r9
and r12, r9
ror r13, 0xe
xor r12, rcx
add rdx, r12
mov r12, r9
ror r12, 0x12
xor r12, r13
mov r13, r9
rol r13, 0x17
xor r12, r13
mov r13, rsi
add rdx, r12
mov r12, rax
add rbp, rdx
mov rdx, rax
rol r12, 0x1e
ror rdx, 0x1c
add r10, rbp
xor r12, rdx
mov rdx, rax
rol rdx, 0x19
xor r12, rdx
mov rdx, rsi
and r13, rax
add rcx, qword [rbx + 0x18]
or rdx, rax
and rdx, r11
or rdx, r13
mov r13, rax
add rdx, r12
mov r12, r8
xor r12, r9
add rdx, rbp
mov rbp, r10
and r12, r10
ror rbp, 0xe
and r13, rdx
xor r12, r8
add r12, rcx
mov rcx, r10
ror rcx, 0x12
xor rcx, rbp
mov rbp, r10
rol rbp, 0x17
xor rbp, rcx
mov rcx, rdx
add rbp, r12
mov r12, rdx
ror rcx, 0x1c
add rbp, qword [rsp]
rol r12, 0x1e
add r11, rbp
xor r12, rcx
mov rcx, rdx
rol rcx, 0x19
xor r12, rcx
mov rcx, rax
or rcx, rdx
and rcx, rsi
or rcx, r13
mov r13, rdx
add rcx, r12
mov r12, r9
xor r12, r10
add rcx, rbp
mov rbp, r11
and r12, r11
add r8, qword [rbx + 0x20]
ror rbp, 0xe
and r13, rcx
xor r12, r9
add r9, qword [rbx + 0x28]
add r12, r8
mov r8, r11
ror r8, 0x12
xor r8, rbp
mov rbp, r11
rol rbp, 0x17
xor rbp, r8
mov r8, rcx
add rbp, r12
mov r12, rcx
ror r8, 0x1c
add rbp, qword [rsp + 8]
rol r12, 0x1e
add rsi, rbp
xor r12, r8
mov r8, rcx
rol r8, 0x19
xor r12, r8
mov r8, rdx
or r8, rcx
and r8, rax
or r8, r13
mov r13, rcx
add r8, r12
mov r12, r10
xor r12, r11
add r8, rbp
mov rbp, rsi
and r12, rsi
ror rbp, 0xe
xor r12, r10
add r12, r9
mov r9, rsi
ror r9, 0x12
xor r9, rbp
mov rbp, rsi
rol rbp, 0x17
xor rbp, r9
and r13, r8
add r10, qword [rbx + 0x30]
lea r9, [r12 + rbp]
mov rbp, qword [rsp + 0x10]
mov r12, r8
ror r12, 0x1c
add rbp, r9
mov r9, r8
rol r9, 0x1e
add rax, rbp
xor r12, r9
mov r9, r8
rol r9, 0x19
xor r12, r9
mov r9, rcx
or r9, r8
and r9, rdx
or r9, r13
mov r13, r8
add r9, r12
mov r12, rax
add r9, rbp
mov rbp, r11
ror r12, 0x12
xor rbp, rsi
and rbp, rax
xor rbp, r11
add r10, rbp
mov rbp, rax
ror rbp, 0xe
xor rbp, r12
mov r12, rax
rol r12, 0x17
xor rbp, r12
mov r12, r9
add r10, rbp
mov rbp, qword [rsp + 0x18]
ror r12, 0x1c
add rbp, r10
mov r10, r9
rol r10, 0x1e
add rdx, rbp
xor r12, r10
mov r10, r9
rol r10, 0x19
xor r12, r10
mov r10, r8
or r10, r9
and r13, r9
add r11, qword [rbx + 0x38]
add rbx, 0x40
and r10, rcx
or r10, r13
mov r13, r9
add r10, r12
mov r12, rdx
add r10, rbp
mov rbp, rsi
ror r12, 0x12
xor rbp, rax
and r13, r10
and rbp, rdx
xor rbp, rsi
add r11, rbp
mov rbp, rdx
ror rbp, 0xe
xor rbp, r12
mov r12, rdx
rol r12, 0x17
xor rbp, r12
mov r12, r10
add rbp, r11
mov r11, r10
rol r12, 0x1e
add rbp, qword [rsp + 0x20]
ror r11, 0x1c
add rcx, rbp
xor r11, r12
mov r12, r10
rol r12, 0x19
xor r12, r11
mov r11, r9
or r11, r10
and r11, r8
or r11, r13
add r11, r12
add r11, rbp
cmp qword [rsp + 0x28], rbx
jne 0x8eb6e0
mov rdi, qword [rsp + 0x340]
add r11, qword [rsp + 0x30]
add r10, qword [rsp + 0x38]
add r9, qword [rsp + 0x40]
add r8, qword [rsp + 0x48]
add rcx, qword [rsp + 0x50]
mov qword [rdi + 0x90], r11
add rdx, qword [rsp + 0x58]
add rax, qword [rsp + 0x60]
mov qword [rdi + 0x98], r10
add rsi, qword [rsp + 0x68]
mov qword [rdi + 0xa0], r9
mov qword [rdi + 0xa8], r8
mov qword [rdi + 0xb0], rcx
mov qword [rdi + 0xb8], rdx
mov qword [rdi + 0xc0], rax
mov qword [rdi + 0xc8], rsi
add rsp, 0x2f8
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret