Function at 0x415810
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, 0x148
lea r15, [0x006923a0]
movabs r14, 0x5be0cd19137e2179
movabs rbx, 0xa54ff53a5f1d36f1
movabs r8, 0x9b05688c2b3e6c1f
movabs r11, 0xbb67ae8584caa73b
vmovdqu xmm3, xmmword [rdx]
mov rax, qword [rcx]
vmovdqu xmm4, xmmword [rdx + 0x10]
vmovdqu xmm5, xmmword [rdx + 0x20]
vmovdqu xmm2, xmmword [rdx + 0x60]
mov rbp, rax
vmovups xmmword [rsp + 0x40], xmm3
vmovdqu xmm3, xmmword [rdx + 0x30]
mov qword [rsp + 0xc0], rax
mov rax, qword [rcx + 0x10]
vmovups xmmword [rsp + 0x50], xmm4
vmovdqu xmm4, xmmword [rdx + 0x40]
vmovups xmmword [rsp + 0x60], xmm5
vmovdqu xmm5, xmmword [rdx + 0x50]
vmovups xmmword [rsp + 0x70], xmm3
vmovdqu xmm3, xmmword [rdx + 0x70]
mov rdx, qword [rcx + 8]
mov qword [rsp + 0x190], rcx
mov rdi, qword [rsp + 0x190]
mov qword [rsp + 0xc8], rdx
mov rdx, qword [rcx + 0x18]
mov rcx, rax
mov qword [rsp + 0xd0], rax
mov rax, qword [rsp + 0x190]
mov qword [rsp + 0xd8], rdx
mov rdx, qword [rdi + 0x28]
vmovups xmmword [rsp + 0x80], xmm4
mov rax, qword [rax + 0x20]
mov qword [rsp + 0xe8], rdx
mov qword [rsp + 0xe0], rax
mov rsi, rax
mov rax, qword [rdi + 0x30]
vmovups xmmword [rsp + 0x90], xmm5
vmovups xmmword [rsp + 0xa0], xmm2
mov r12, rax
vmovups xmmword [rsp + 0xb0], xmm3
mov rdx, qword [rdi + 0x38]
xor r14, qword [rdi + 0x58]
mov qword [rsp + 0xf0], rax
xor r8, qword [rdi + 0x48]
movabs rax, 0x510e527fade682d1
xor rax, qword [rdi + 0x40]
mov qword [rsp + 0x20], r14
mov qword [rsp + 0x18], rax
mov r9, qword [rsp + 0xc8]
mov qword [rsp + 0xf8], rdx
mov r13, qword [rsp + 0xe8]
movabs rdx, 0x1f83d9abfb41bd6b
mov qword [rsp + 0x10], rbx
xor rdx, qword [rdi + 0x50]
movabs rbx, 0x3c6ef372fe94f82b
mov r10, qword [rsp + 0xd8]
mov rdi, qword [rsp + 0xf8]
mov qword [rsp + 8], rbx
movabs rbx, 0x6a09e667f3bcc908
nop dword [rax]
mov r14d, dword [r15]
mov rax, qword [rsp + r14*8 + 0x40]
mov r14d, dword [r15 + 4]
add rax, rsi
add rbp, rax
mov rax, qword [rsp + 0x18]
xor rax, rbp
add rbp, qword [rsp + r14*8 + 0x40]
rorx rax, rax, 0x20
add rbx, rax
xor rsi, rbx
rorx rsi, rsi, 0x18
add rbp, rsi
xor rax, rbp
rorx rax, rax, 0x10
add rbx, rax
xor rsi, rbx
mov qword [rsp + 0x28], rbx
mov ebx, dword [r15 + 8]
rorx rsi, rsi, 0x3f
mov qword [rsp + 0x38], rsi
mov r14, qword [rsp + rbx*8 + 0x40]
mov ebx, dword [r15 + 0xc]
add r14, r13
add r9, r14
xor r8, r9
add r9, qword [rsp + rbx*8 + 0x40]
rorx r8, r8, 0x20
add r11, r8
xor r13, r11
rorx r13, r13, 0x18
add r9, r13
xor r8, r9
rorx r8, r8, 0x10
lea r14, [r11 + r8]
mov r11d, dword [r15 + 0x10]
xor r13, r14
mov qword [rsp + 0x30], r14
mov r14d, dword [r15 + 0x1c]
mov rsi, qword [rsp + r11*8 + 0x40]
mov r11, qword [rsp + 8]
rorx r13, r13, 0x3f
add rsi, r12
add rcx, rsi
xor rdx, rcx
rorx rdx, rdx, 0x20
add r11, rdx
xor r12, r11
mov rbx, r11
mov r11d, dword [r15 + 0x14]
rorx r12, r12, 0x18
add rcx, qword [rsp + r11*8 + 0x40]
mov r11d, dword [r15 + 0x18]
add rcx, r12
mov rsi, qword [rsp + r11*8 + 0x40]
mov r11, qword [rsp + 0x20]
xor rdx, rcx
rorx rdx, rdx, 0x10
add rbx, rdx
add rsi, rdi
xor r12, rbx
add r10, rsi
rorx r12, r12, 0x3f
xor r11, r10
rorx rsi, r11, 0x20
mov r11, qword [rsp + 0x10]
add r11, rsi
add r10, qword [rsp + r14*8 + 0x40]
mov r14d, dword [r15 + 0x20]
xor rdi, r11
add rbp, qword [rsp + r14*8 + 0x40]
rorx rdi, rdi, 0x18
add r10, rdi
mov r14d, dword [r15 + 0x24]
add rbp, r13
xor rsi, r10
rorx rsi, rsi, 0x10
add r11, rsi
xor rsi, rbp
add rbp, qword [rsp + r14*8 + 0x40]
rorx rsi, rsi, 0x20
add rbx, rsi
xor rdi, r11
xor r13, rbx
rorx rdi, rdi, 0x3f
rorx r13, r13, 0x18
add rbp, r13
xor rsi, rbp
rorx rsi, rsi, 0x10
add rbx, rsi
mov qword [rsp + 0x20], rsi
xor r13, rbx
mov qword [rsp + 8], rbx
mov ebx, dword [r15 + 0x28]
rorx r13, r13, 0x3f
add r9, qword [rsp + rbx*8 + 0x40]
mov ebx, dword [r15 + 0x2c]
add r9, r12
xor rax, r9
add r9, qword [rsp + rbx*8 + 0x40]
mov rbx, qword [rsp + 0x28]
rorx rax, rax, 0x20
add r11, rax
mov rsi, qword [rsp + 0x38]
mov r14, qword [rsp + 0x30]
xor r12, r11
rorx r12, r12, 0x18
add r9, r12
xor rax, r9
rorx rax, rax, 0x10
mov qword [rsp + 0x18], rax
add rax, r11
mov r11d, dword [r15 + 0x30]
xor r12, rax
mov qword [rsp + 0x10], rax
lea rax, [0x006926a0]
add rcx, qword [rsp + r11*8 + 0x40]
mov r11d, dword [r15 + 0x34]
rorx r12, r12, 0x3f
add rcx, rdi
xor r8, rcx
rorx r8, r8, 0x20
add rbx, r8
xor rdi, rbx
add rcx, qword [rsp + r11*8 + 0x40]
mov r11d, dword [r15 + 0x38]
add r15, 0x40
rorx rdi, rdi, 0x18
add rcx, rdi
add r10, qword [rsp + r11*8 + 0x40]
xor r8, rcx
add r10, rsi
rorx r8, r8, 0x10
add rbx, r8
xor rdx, r10
xor rdi, rbx
rorx rdx, rdx, 0x20
lea r11, [r14 + rdx]
mov r14d, dword [r15 - 4]
rorx rdi, rdi, 0x3f
xor rsi, r11
add r10, qword [rsp + r14*8 + 0x40]
rorx rsi, rsi, 0x18
add r10, rsi
xor rdx, r10
rorx rdx, rdx, 0x10
add r11, rdx
xor rsi, r11
rorx rsi, rsi, 0x3f
cmp r15, rax
jne 0x4159a8
vmovq xmm4, rcx
vmovq xmm5, rbp
vmovq xmm3, rbx
vmovq xmm2, qword [rsp + 8]
vpinsrq xmm1, xmm4, r10, 1
vpinsrq xmm2, xmm2, qword [rsp + 0x10], 1
vpinsrq xmm0, xmm5, r9, 1
mov rcx, qword [rsp + 0x190]
vinserti128 ymm0, ymm0, xmm1, 1
vpinsrq xmm1, xmm3, r11, 1
mov rax, qword [rsp + 0x18]
mov r14, qword [rsp + 0x20]
vinserti128 ymm1, ymm1, xmm2, 1
vmovq xmm4, rdx
vmovq xmm2, r12
vpxor ymm0, ymm0, ymm1
vpxor ymm0, ymm0, ymmword [rcx]
vmovq xmm5, rax
vpinsrq xmm1, xmm4, r14, 1
vmovq xmm3, rsi
vpinsrq xmm2, xmm2, rdi, 1
vmovdqu ymmword [rcx], ymm0
vpinsrq xmm0, xmm5, r8, 1
vinserti128 ymm0, ymm0, xmm1, 1
vpinsrq xmm1, xmm3, r13, 1
vinserti128 ymm1, ymm1, xmm2, 1
vpxor ymm0, ymm0, ymm1
vpxor ymm0, ymm0, ymmword [rcx + 0x20]
vmovdqu ymmword [rcx + 0x20], ymm0
vzeroupper
add rsp, 0x148
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret