Function at 0x415170
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, 0x158
lea r15, [0x005d3120]
movabs r14, 0x5be0cd19137e2179
movabs r8, 0x9b05688c2b3e6c1f
movabs rbx, 0xa54ff53a5f1d36f1
movabs r11, 0xbb67ae8584caa73b
mov rax, qword [rcx]
vmovdqu xmm4, xmmword [rdx]
vmovdqu xmm5, xmmword [rdx + 0x10]
vmovdqu xmm2, xmmword [rdx + 0x40]
vmovups xmmword [rsp + 0x50], xmm4
vmovdqu xmm4, xmmword [rdx + 0x20]
mov rbp, rax
vmovups xmmword [rsp + 0x60], xmm5
vmovdqu xmm5, xmmword [rdx + 0x30]
vmovdqu xmm3, xmmword [rdx + 0x50]
vmovups xmmword [rsp + 0x70], xmm4
vmovups xmmword [rsp + 0x80], xmm5
vmovdqu xmm4, xmmword [rdx + 0x60]
vmovdqu xmm5, xmmword [rdx + 0x70]
mov qword [rsp + 0xd0], rax
mov rdx, qword [rcx + 8]
mov qword [rsp + 0x1a0], rcx
vmovups xmmword [rsp + 0x90], xmm2
mov rax, qword [rcx + 0x10]
mov rdi, qword [rsp + 0x1a0]
vmovups xmmword [rsp + 0xa0], xmm3
vmovups xmmword [rsp + 0xb0], xmm4
mov qword [rsp + 0xd8], rdx
mov rdx, qword [rcx + 0x18]
mov qword [rsp + 0xe0], rax
mov rcx, rax
mov rax, qword [rsp + 0x1a0]
vmovups xmmword [rsp + 0xc0], xmm5
mov qword [rsp + 0xe8], rdx
mov rdx, qword [rdi + 0x28]
mov rax, qword [rax + 0x20]
mov qword [rsp + 0xf8], rdx
mov qword [rsp + 0xf0], rax
mov rsi, rax
mov rax, qword [rdi + 0x30]
mov rdx, qword [rdi + 0x38]
mov qword [rsp + 0x18], rbx
movabs rbx, 0x3c6ef372fe94f82b
xor r14, qword [rdi + 0x58]
mov qword [rsp], rbx
movabs rbx, 0x6a09e667f3bcc908
xor r8, qword [rdi + 0x48]
mov r12, rax
mov qword [rsp + 0x100], rax
movabs rax, 0x510e527fade682d1
xor rax, qword [rdi + 0x40]
mov qword [rsp + 0x108], rdx
mov r9, qword [rsp + 0xd8]
movabs rdx, 0x1f83d9abfb41bd6b
mov r13, qword [rsp + 0xf8]
mov qword [rsp + 0x30], r14
xor rdx, qword [rdi + 0x50]
mov r10, qword [rsp + 0xe8]
mov qword [rsp + 0x20], rax
mov rdi, qword [rsp + 0x108]
nop word cs:[rax + rax]
mov r14d, dword [r15]
mov rax, qword [rsp + r14*8 + 0x50]
mov r14d, dword [r15 + 4]
add rax, rsi
add rbp, rax
mov rax, qword [rsp + 0x20]
xor rax, rbp
add rbp, qword [rsp + r14*8 + 0x50]
rol rax, 0x20
add rbx, rax
xor rsi, rbx
ror rsi, 0x18
add rbp, rsi
xor rax, rbp
ror rax, 0x10
add rbx, rax
xor rsi, rbx
mov qword [rsp + 0x38], rbx
mov ebx, dword [r15 + 8]
rol rsi, 1
mov qword [rsp + 0x48], rsi
mov r14, qword [rsp + rbx*8 + 0x50]
mov ebx, dword [r15 + 0xc]
add r14, r13
add r9, r14
xor r8, r9
add r9, qword [rsp + rbx*8 + 0x50]
rol r8, 0x20
add r11, r8
xor r13, r11
ror r13, 0x18
add r9, r13
xor r8, r9
ror r8, 0x10
lea r14, [r11 + r8]
mov r11d, dword [r15 + 0x10]
xor r13, r14
mov qword [rsp + 0x40], r14
mov r14d, dword [r15 + 0x1c]
rol r13, 1
mov rsi, qword [rsp + r11*8 + 0x50]
mov r11, qword [rsp]
add rsi, r12
add rcx, rsi
xor rdx, rcx
rol rdx, 0x20
add r11, rdx
xor r12, r11
mov rbx, r11
mov r11d, dword [r15 + 0x14]
ror r12, 0x18
add rcx, qword [rsp + r11*8 + 0x50]
mov r11d, dword [r15 + 0x18]
add rcx, r12
mov rsi, qword [rsp + r11*8 + 0x50]
xor rdx, rcx
mov r11, qword [rsp + 0x30]
ror rdx, 0x10
add rbx, rdx
xor r12, rbx
add rsi, rdi
rol r12, 1
add r10, rsi
xor r11, r10
add r10, qword [rsp + r14*8 + 0x50]
mov rsi, r11
mov r11, qword [rsp + 0x18]
mov r14d, dword [r15 + 0x20]
rol rsi, 0x20
add r11, rsi
add rbp, qword [rsp + r14*8 + 0x50]
xor rdi, r11
ror rdi, 0x18
mov r14d, dword [r15 + 0x24]
add r10, rdi
xor rsi, r10
add rbp, r13
ror rsi, 0x10
add r11, rsi
xor rsi, rbp
add rbp, qword [rsp + r14*8 + 0x50]
rol rsi, 0x20
xor rdi, r11
add rbx, rsi
rol rdi, 1
xor r13, rbx
ror r13, 0x18
add rbp, r13
xor rsi, rbp
mov r14, rsi
ror r14, 0x10
add rbx, r14
mov qword [rsp + 0x30], r14
xor r13, rbx
mov qword [rsp], rbx
mov ebx, dword [r15 + 0x28]
rol r13, 1
add r9, qword [rsp + rbx*8 + 0x50]
mov ebx, dword [r15 + 0x2c]
add r9, r12
xor rax, r9
add r9, qword [rsp + rbx*8 + 0x50]
rol rax, 0x20
mov rbx, qword [rsp + 0x38]
add r11, rax
mov rsi, qword [rsp + 0x48]
xor r12, r11
mov r14, qword [rsp + 0x40]
ror r12, 0x18
add r9, r12
xor rax, r9
ror rax, 0x10
mov qword [rsp + 0x20], rax
add rax, r11
mov r11d, dword [r15 + 0x30]
xor r12, rax
mov qword [rsp + 0x18], rax
lea rax, [0x005d3420]
rol r12, 1
add rcx, qword [rsp + r11*8 + 0x50]
mov r11d, dword [r15 + 0x34]
add rcx, rdi
xor r8, rcx
add rcx, qword [rsp + r11*8 + 0x50]
rol r8, 0x20
mov r11d, dword [r15 + 0x38]
add rbx, r8
xor rdi, rbx
ror rdi, 0x18
add rcx, rdi
xor r8, rcx
ror r8, 0x10
add rbx, r8
xor rdi, rbx
rol rdi, 1
add r10, qword [rsp + r11*8 + 0x50]
add r15, 0x40
add r10, rsi
xor rdx, r10
rol rdx, 0x20
lea r11, [r14 + rdx]
mov r14d, dword [r15 - 4]
xor rsi, r11
ror rsi, 0x18
add r10, qword [rsp + r14*8 + 0x50]
add r10, rsi
xor rdx, r10
ror rdx, 0x10
add r11, rdx
xor rsi, r11
rol rsi, 1
cmp r15, rax
jne 0x415310
mov rax, qword [rsp + 0x20]
vmovq xmm4, rcx
vmovq xmm5, rbp
mov r15, qword [rsp + 0x1a0]
vpinsrq xmm1, xmm4, r10, 1
vmovq xmm4, rbx
vpinsrq xmm0, xmm5, r9, 1
mov r14, qword [rsp + 0x30]
vinsertf128 ymm0, ymm0, xmm1, 1
vmovq xmm5, r12
vpinsrq xmm1, xmm4, r11, 1
vmovq xmm4, rax
vmovdqu xmm2, xmmword [r15]
vinsertf128 ymm3, ymm2, xmmword [r15 + 0x10], 1
vmovups xmmword [rsp + 0x20], xmm2
vmovq xmm2, qword [rsp]
vpinsrq xmm2, xmm2, qword [rsp + 0x18], 1
vinsertf128 ymm1, ymm1, xmm2, 1
vmovq xmm2, rdx
vxorps ymm0, ymm0, ymm1
vxorps ymm0, ymm0, ymm3
vmovdqu xmm3, xmmword [r15 + 0x20]
vpinsrq xmm1, xmm2, r14, 1
vmovups xmmword [r15], xmm0
vextractf128 xmmword [r15 + 0x10], ymm0, 1
vpinsrq xmm0, xmm4, r8, 1
vinsertf128 ymm0, ymm0, xmm1, 1
vmovq xmm1, rsi
vmovups xmmword [rsp], xmm3
vpinsrq xmm2, xmm5, rdi, 1
vinsertf128 ymm3, ymm3, xmmword [r15 + 0x30], 1
vpinsrq xmm1, xmm1, r13, 1
vinsertf128 ymm1, ymm1, xmm2, 1
vxorps ymm0, ymm0, ymm1
vxorps ymm0, ymm0, ymm3
vmovups xmmword [r15 + 0x20], xmm0
vextractf128 xmmword [r15 + 0x30], ymm0, 1
vzeroupper
add rsp, 0x158
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret