Function at 0x41f9c0
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 r12, [0x005c1ba0]
movabs r14, 0x5be0cd19137e2179
movabs rsi, 0xa54ff53a5f1d36f1
movabs r8, 0x9b05688c2b3e6c1f
movabs r11, 0x6a09e667f3bcc908
movdqu xmm2, xmmword [rdx]
movdqu xmm3, xmmword [rdx + 0x10]
movdqu xmm4, xmmword [rdx + 0x20]
movdqu xmm5, xmmword [rdx + 0x30]
mov rax, qword [rcx]
movups xmmword [rsp + 0x50], xmm2
movdqu xmm2, xmmword [rdx + 0x40]
mov rbx, rcx
mov r15, rax
movups xmmword [rsp + 0x60], xmm3
movdqu xmm3, xmmword [rdx + 0x50]
movups xmmword [rsp + 0x70], xmm4
movdqu xmm4, xmmword [rdx + 0x60]
movups xmmword [rsp + 0x80], xmm5
movdqu xmm5, xmmword [rdx + 0x70]
mov rdx, qword [rcx + 8]
mov qword [rsp + 0x1a0], rcx
mov qword [rsp + 0xd8], rdx
mov rdx, qword [rcx + 0x10]
mov rcx, qword [rcx + 0x18]
mov qword [rsp + 0xd0], rax
mov qword [rsp + 0xe0], rdx
mov rax, rdx
mov rdx, qword [rbx + 0x20]
mov qword [rsp + 0xe8], rcx
mov rcx, qword [rbx + 0x28]
mov qword [rsp + 0xf0], rdx
mov rdi, rdx
mov rdx, qword [rbx + 0x30]
mov qword [rsp + 0xf8], rcx
mov rcx, qword [rbx + 0x38]
mov qword [rsp + 0x100], rdx
mov r10, rdx
movabs rdx, 0x1f83d9abfb41bd6b
movups xmmword [rsp + 0x90], xmm2
movups xmmword [rsp + 0xa0], xmm3
movups xmmword [rsp + 0xb0], xmm4
movups xmmword [rsp + 0xc0], xmm5
mov qword [rsp + 0x108], rcx
xor rdx, qword [rbx + 0x50]
movabs rcx, 0x510e527fade682d1
mov qword [rsp + 0x20], rax
xor rcx, qword [rbx + 0x40]
mov qword [rsp + 0x30], r14
mov r9, qword [rsp + 0xd8]
mov qword [rsp + 0x18], rsi
mov r13, qword [rsp + 0xf8]
movabs rsi, 0x3c6ef372fe94f82b
mov rbx, qword [rsp + 0xe8]
mov rbp, qword [rsp + 0x108]
mov qword [rsp], rsi
movabs rsi, 0xbb67ae8584caa73b
nop dword [rax]
mov r14d, dword [r12]
mov rax, qword [rsp + r14*8 + 0x50]
mov r14d, dword [r12 + 4]
add rax, rdi
add r15, rax
xor rcx, r15
add r15, qword [rsp + r14*8 + 0x50]
rol rcx, 0x20
add r11, rcx
xor rdi, r11
ror rdi, 0x18
add r15, rdi
xor rcx, r15
ror rcx, 0x10
lea rax, [r11 + rcx]
mov r11d, dword [r12 + 8]
xor rdi, rax
mov qword [rsp + 0x38], rax
mov rax, qword [rsp + 0x20]
mov r14, qword [rsp + r11*8 + 0x50]
mov r11d, dword [r12 + 0xc]
rol rdi, 1
mov qword [rsp + 0x48], rdi
add r14, r13
add r9, r14
xor r8, r9
add r9, qword [rsp + r11*8 + 0x50]
mov r11d, dword [r12 + 0x10]
rol r8, 0x20
add rsi, r8
xor r13, rsi
ror r13, 0x18
add r9, r13
xor r8, r9
ror r8, 0x10
lea r14, [rsi + r8]
mov rsi, qword [rsp + r11*8 + 0x50]
mov r11d, dword [r12 + 0x14]
xor r13, r14
mov qword [rsp + 0x40], r14
mov r14d, dword [r12 + 0x1c]
add rsi, r10
rol r13, 1
add rax, rsi
mov rsi, qword [rsp]
xor rdx, rax
rol rdx, 0x20
add rsi, rdx
xor r10, rsi
ror r10, 0x18
add rax, qword [rsp + r11*8 + 0x50]
mov r11d, dword [r12 + 0x18]
add rax, r10
mov rdi, qword [rsp + r11*8 + 0x50]
mov r11, qword [rsp + 0x30]
xor rdx, rax
ror rdx, 0x10
add rdi, rbp
add rsi, rdx
add rbx, rdi
xor r10, rsi
xor r11, rbx
add rbx, qword [rsp + r14*8 + 0x50]
mov r14d, dword [r12 + 0x20]
rol r10, 1
mov rdi, r11
mov r11, qword [rsp + 0x18]
rol rdi, 0x20
add r15, qword [rsp + r14*8 + 0x50]
mov r14d, dword [r12 + 0x24]
add r11, rdi
add r15, r13
xor rbp, r11
ror rbp, 0x18
add rbx, rbp
xor rdi, rbx
ror rdi, 0x10
add r11, rdi
xor rdi, r15
add r15, qword [rsp + r14*8 + 0x50]
rol rdi, 0x20
xor rbp, r11
add rsi, rdi
rol rbp, 1
xor r13, rsi
ror r13, 0x18
add r15, r13
xor rdi, r15
mov r14, rdi
ror r14, 0x10
add rsi, r14
mov qword [rsp + 0x30], r14
xor r13, rsi
mov qword [rsp], rsi
mov esi, dword [r12 + 0x28]
rol r13, 1
add r9, qword [rsp + rsi*8 + 0x50]
mov esi, dword [r12 + 0x2c]
add r9, r10
xor rcx, r9
add r9, qword [rsp + rsi*8 + 0x50]
mov rsi, qword [rsp + 0x38]
rol rcx, 0x20
mov rdi, qword [rsp + 0x48]
mov r14, qword [rsp + 0x40]
add r11, rcx
xor r10, r11
ror r10, 0x18
add r9, r10
xor rcx, r9
ror rcx, 0x10
add r11, rcx
xor r10, r11
mov qword [rsp + 0x18], r11
mov r11d, dword [r12 + 0x30]
rol r10, 1
add rax, qword [rsp + r11*8 + 0x50]
add rax, rbp
xor r8, rax
rol r8, 0x20
lea r11, [rsi + r8]
mov esi, dword [r12 + 0x34]
xor rbp, r11
ror rbp, 0x18
add rax, qword [rsp + rsi*8 + 0x50]
mov esi, dword [r12 + 0x38]
add rax, rbp
xor r8, rax
add rbx, qword [rsp + rsi*8 + 0x50]
mov qword [rsp + 0x20], rax
lea rax, [0x005c1ea0]
ror r8, 0x10
add r11, r8
xor rbp, r11
rol rbp, 1
add rbx, rdi
add r12, 0x40
xor rdx, rbx
rol rdx, 0x20
lea rsi, [r14 + rdx]
mov r14d, dword [r12 - 4]
xor rdi, rsi
ror rdi, 0x18
add rbx, qword [rsp + r14*8 + 0x50]
add rbx, rdi
xor rdx, rbx
ror rdx, 0x10
add rsi, rdx
xor rdi, rsi
rol rdi, 1
cmp rax, r12
jne 0x41fb40
mov r12, rbp
movq xmm3, r9
movq xmm4, rsi
mov rbp, qword [rsp + 0x1a0]
movq xmm0, r15
movq xmm1, r11
mov rax, qword [rsp + 0x20]
mov r14, qword [rsp + 0x30]
movdqu xmm2, xmmword [rbp]
punpcklqdq xmm1, xmm4
punpcklqdq xmm0, xmm3
movdqu xmm3, xmmword [rbp + 0x10]
pxor xmm0, xmm1
movq xmm1, qword [rsp]
movdqu xmm5, xmmword [rbp + 0x20]
movq xmm4, r12
pxor xmm0, xmm2
movups xmmword [rsp + 0x20], xmm2
movq xmm2, rbx
movups xmmword [rbp], xmm0
movq xmm0, rax
movhps xmm1, qword [rsp + 0x18]
punpcklqdq xmm0, xmm2
movq xmm2, r13
pxor xmm0, xmm1
movq xmm1, rcx
pxor xmm0, xmm3
movq xmm3, r8
movups xmmword [rbp + 0x10], xmm0
movq xmm0, rdi
punpcklqdq xmm1, xmm3
punpcklqdq xmm0, xmm2
movq xmm2, r14
pxor xmm0, xmm1
movq xmm1, r10
pxor xmm0, xmm5
punpcklqdq xmm1, xmm4
movdqu xmm5, xmmword [rbp + 0x30]
movups xmmword [rbp + 0x20], xmm0
movq xmm0, rdx
punpcklqdq xmm0, xmm2
movups xmmword [rsp], xmm5
pxor xmm0, xmm1
pxor xmm0, xmm5
movups xmmword [rbp + 0x30], xmm0
add rsp, 0x158
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret