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

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x48
mov qword [rsp + 0x30], rdx
mov r13, qword [rcx]
mov rax, qword [rcx + 8]
mov qword [rsp + 8], rax
mov rbp, qword [rcx + 0x10]
mov r15, qword [rcx + 0x18]
mov r11, qword [rcx + 0x20]
mov r10, qword [rcx + 0x28]
mov rax, qword [rcx + 0x30]
movabs rbx, 0x510e527fade682d1
xor rbx, qword [r8]
movabs rsi, 0x9b05688c2b3e6c1f
xor rsi, qword [r8 + 8]
test r9d, r9d
movabs rdx, 0x1f83d9abfb41bd6b
movabs rdi, 0xe07c265404be4294
cmove rdi, rdx
mov qword [rsp + 0x38], rcx
mov r8, qword [rcx + 0x38]
movabs rcx, 0xa54ff53a5f1d36f1
mov qword [rsp + 0x18], rcx
movabs r9, 0x5be0cd19137e2179
movabs rcx, 0x3c6ef372fe94f82b
mov qword [rsp + 0x10], rcx
movabs r14, 0xbb67ae8584caa73b
movabs r12, 0x6a09e667f3bcc908
mov ecx, reloc.WS2_32.dll_ntohs
nop word cs:[rax + rax]
mov qword [rsp + 0x20], rbp
mov qword [rsp + 0x40], r15
mov qword [rsp], rcx
mov rcx, qword [rsp]
lea rbp, [0x14026a050]
movzx ecx, byte [rcx + rbp - 0xf]
mov r15, qword [rsp + 0x30]
mov rdx, qword [r15 + rcx*8]
add rdx, r11
add rdx, r13
mov rcx, qword [rsp]
movzx ecx, byte [rcx + rbp - 0xe]
xor rbx, rdx
add rdx, qword [r15 + rcx*8]
rol rbx, 0x20
mov rcx, qword [rsp]
mov r13, rbp
movzx ecx, byte [rcx + rbp - 0xd]
mov rbp, qword [r15 + rcx*8]
add rbp, r10
add r12, rbx
add rbp, qword [rsp + 8]
mov rcx, qword [rsp]
movzx ecx, byte [rcx + r13 - 0xc]
xor rsi, rbp
xor r11, r12
rol rsi, 0x20
rol r11, 0x28
add r14, rsi
mov qword [rsp + 0x28], r14
xor r10, r14
rol r10, 0x28
add rbp, qword [r15 + rcx*8]
mov rcx, qword [rsp]
movzx ecx, byte [rcx + r13 - 0xb]
mov r14, rdx
add r14, r11
mov qword [rsp + 8], r14
mov rdx, qword [r15 + rcx*8]
mov r13, r15
add rdx, rax
add rdx, qword [rsp + 0x20]
add rbp, r10
xor rdi, rdx
rol rdi, 0x20
xor rbx, r14
mov rcx, qword [rsp]
lea r14, [0x14026a050]
movzx ecx, byte [rcx + r14 - 0xa]
mov r15, qword [rsp + 0x10]
add r15, rdi
xor rax, r15
xor rsi, rbp
rol rax, 0x28
rol rbx, 0x30
add rdx, qword [r13 + rcx*8]
rol rsi, 0x30
add rdx, rax
xor rdi, rdx
rol rdi, 0x30
add r12, rbx
mov qword [rsp + 0x20], r12
mov rcx, qword [rsp]
movzx ecx, byte [rcx + r14 - 9]
mov rcx, qword [r13 + rcx*8]
add qword [rsp + 0x28], rsi
add rcx, r8
add rcx, qword [rsp + 0x40]
xor r9, rcx
add r15, rdi
mov qword [rsp + 0x10], r15
rol r9, 0x20
mov r13, qword [rsp + 0x18]
add r13, r9
xor r11, r12
xor r8, r13
rol r8, 0x28
xor r10, qword [rsp + 0x28]
mov r14, qword [rsp]
lea r12, [0x14026a050]
movzx r14d, byte [r14 + r12 - 8]
mov r12, qword [rsp + 0x30]
add rcx, qword [r12 + r14*8]
xor rax, r15
add rcx, r8
xor r9, rcx
rol r11, 1
rol r9, 0x30
rol r10, 1
add r13, r9
mov qword [rsp + 0x18], r13
xor r8, r13
rol rax, 1
rol r8, 1
mov r14, qword [rsp]
lea r15, [0x14026a050]
movzx r14d, byte [r14 + r15 - 7]
mov r13, qword [rsp + 8]
add r13, r10
mov r15, r12
add r13, qword [r12 + r14*8]
mov r14, qword [rsp]
lea r12, [0x14026a050]
movzx r14d, byte [r14 + r12 - 6]
xor r9, r13
mov r12, qword [rsp + 0x20]
add r13, qword [r15 + r14*8]
mov qword [rsp + 8], r13
mov r14, qword [rsp]
lea r13, [0x14026a050]
movzx r14d, byte [r14 + r13 - 5]
add rbp, rax
add rbp, qword [r15 + r14*8]
mov r14, qword [rsp]
movzx r14d, byte [r14 + r13 - 4]
xor rbx, rbp
add rbp, qword [r15 + r14*8]
mov r13, r15
mov r14, qword [rsp]
lea r15, [0x14026a050]
movzx r14d, byte [r14 + r15 - 3]
add rdx, r8
add rdx, qword [r13 + r14*8]
mov r14, qword [rsp]
movzx r14d, byte [r14 + r15 - 2]
xor rsi, rdx
add rdx, qword [r13 + r14*8]
mov r14, qword [rsp]
movzx r14d, byte [r14 + r15 - 1]
add rcx, r11
add rcx, qword [r13 + r14*8]
mov r14, qword [rsp]
movzx r14d, byte [r14 + r15]
xor rdi, rcx
add rcx, qword [r13 + r14*8]
rol r9, 0x20
mov r14, qword [rsp + 0x10]
add r14, r9
xor r10, r14
rol r10, 0x28
rol rbx, 0x20
mov r15, qword [rsp + 0x18]
add r15, rbx
mov r13, qword [rsp + 8]
xor rax, r15
rol rax, 0x28
add r13, r10
rol rsi, 0x20
xor r9, r13
add rbp, rax
add r12, rsi
xor r8, r12
mov qword [rsp + 8], rbp
xor rbx, rbp
rol r8, 0x28
rol r9, 0x30
mov rbp, rdx
add rbp, r8
rol rbx, 0x30
xor rsi, rbp
rol rsi, 0x30
add r14, r9
add r15, rbx
rol rdi, 0x20
mov qword [rsp + 0x10], r14
xor r10, r14
mov r14, qword [rsp + 0x28]
add r12, rsi
add r14, rdi
xor r11, r14
mov qword [rsp + 0x18], r15
xor rax, r15
rol r11, 0x28
mov r15, rcx
mov rcx, qword [rsp]
xor r8, r12
add r15, r11
xor rdi, r15
rol r10, 1
rol rdi, 0x30
rol rax, 1
add r14, rdi
xor r11, r14
rol r8, 1
rol r11, 1
add rcx, 0x10
cmp rcx, 0xcf
jne 0x1400d70e0
mov rcx, qword [rsp + 0x38]
xor r13, qword [rcx]
xor r13, r12
mov qword [rcx], r13
mov rdx, qword [rsp + 8]
xor rdx, qword [rcx + 8]
xor rdx, r14
mov qword [rcx + 8], rdx
xor rbp, qword [rcx + 0x10]
xor rbp, qword [rsp + 0x10]
mov qword [rcx + 0x10], rbp
xor r15, qword [rcx + 0x18]
xor r15, qword [rsp + 0x18]
mov qword [rcx + 0x18], r15
xor r11, qword [rcx + 0x20]
xor r11, rbx
mov qword [rcx + 0x20], r11
xor r10, qword [rcx + 0x28]
xor r10, rsi
mov qword [rcx + 0x28], r10
xor rax, qword [rcx + 0x30]
xor rax, rdi
mov qword [rcx + 0x30], rax
xor r8, qword [rcx + 0x38]
xor r8, r9
mov qword [rcx + 0x38], r8
add rsp, 0x48
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret