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

Disassembly:
sub rsp, 0x238
movups xmmword [rsp + 0x190], xmm6
movups xmmword [rsp + 0x1a0], xmm7
movups xmmword [rsp + 0x1b0], xmm8
movups xmmword [rsp + 0x1c0], xmm9
movups xmmword [rsp + 0x1d0], xmm10
movups xmmword [rsp + 0x1e0], xmm11
movups xmmword [rsp + 0x1f0], xmm12
movups xmmword [rsp + 0x200], xmm13
movups xmmword [rsp + 0x210], xmm14
movups xmmword [rsp + 0x220], xmm15
movdqu xmm0, xmmword [0x005dc160]
movdqu xmm6, xmmword [rcx + 0x80]
pxor xmm0, xmmword [rcx + 0xc0]
mov r9d, edx
lea rdx, [rsp + 0x9f]
and rdx, 0xffffffffffffffe0
movups xmmword [rdx + 0x80], xmm6
movdqu xmm6, xmmword [rcx + 0x90]
movups xmmword [rdx + 0x90], xmm6
movdqu xmm6, xmmword [rcx + 0xa0]
movups xmmword [rdx + 0xa0], xmm6
movdqu xmm6, xmmword [rcx + 0xb0]
movups xmmword [rdx + 0xe0], xmm0
movups xmmword [rdx + 0xb0], xmm6
movdqu xmm6, xmmword [0x005dc140]
movups xmmword [rdx + 0xc0], xmm6
movdqu xmm6, xmmword [0x005dc150]
movups xmmword [rdx + 0xd0], xmm6
movdqu xmm6, xmmword [0x005dc170]
movups xmmword [rdx + 0xf0], xmm6
test r9d, r9d
je 0x4403ca
not qword [rdx + 0xf0]
movdqu xmm1, xmmword [rcx]
movdqu xmm0, xmmword [0x005dc180]
lea rax, [0x005dc080]
movdqu xmm2, xmmword [rcx + 0x10]
movdqu xmm8, xmmword [rcx]
lea r10, [rax + 0xc0]
pand xmm1, xmm0
movdqu xmm9, xmmword [rcx + 0x20]
movdqu xmm7, xmmword [rcx + 0x20]
movdqu xmm10, xmm0
pand xmm2, xmm0
psrlw xmm8, 8
movdqu xmm4, xmmword [rcx + 0x40]
movdqu xmm3, xmmword [rcx + 0x50]
packuswb xmm1, xmm2
movdqu xmm2, xmmword [rcx + 0x10]
pand xmm9, xmm0
movdqu xmm5, xmmword [rcx + 0x60]
psrlw xmm7, 8
pand xmm4, xmm0
movdqu xmm6, xmmword [rcx + 0x70]
movdqu xmm11, xmm0
psrlw xmm2, 8
psrlw xmm3, 8
pand xmm5, xmm0
packuswb xmm8, xmm2
movdqu xmm2, xmmword [rcx + 0x30]
psrlw xmm6, 8
pand xmm2, xmm0
packuswb xmm9, xmm2
movdqu xmm2, xmmword [rcx + 0x30]
pand xmm10, xmm9
psrlw xmm9, 8
psrlw xmm2, 8
packuswb xmm7, xmm2
movdqu xmm2, xmmword [rcx + 0x50]
pand xmm2, xmm0
packuswb xmm4, xmm2
movdqu xmm2, xmmword [rcx + 0x40]
pand xmm11, xmm4
psrlw xmm4, 8
psrlw xmm2, 8
packuswb xmm2, xmm3
movdqu xmm3, xmmword [rcx + 0x70]
pand xmm3, xmm0
packuswb xmm5, xmm3
movdqu xmm3, xmmword [rcx + 0x60]
psrlw xmm3, 8
packuswb xmm3, xmm6
movdqu xmm6, xmm0
pand xmm6, xmm1
psrlw xmm1, 8
packuswb xmm1, xmm9
movdqu xmm9, xmm0
packuswb xmm6, xmm10
pand xmm9, xmm5
psrlw xmm5, 8
movdqu xmm10, xmm0
packuswb xmm11, xmm9
packuswb xmm4, xmm5
movdqu xmm9, xmm0
movdqu xmm5, xmm0
pand xmm9, xmm7
pand xmm10, xmm2
psrlw xmm7, 8
psrlw xmm2, 8
pand xmm5, xmm8
psrlw xmm8, 8
packuswb xmm5, xmm9
movdqu xmm9, xmm0
packuswb xmm8, xmm7
movdqu xmm7, xmm0
pand xmm9, xmm6
pand xmm7, xmm3
psrlw xmm3, 8
packuswb xmm2, xmm3
movdqu xmm3, xmm0
packuswb xmm10, xmm7
pand xmm3, xmm11
psrlw xmm6, 8
movdqu xmm7, xmm0
packuswb xmm9, xmm3
movdqu xmm3, xmm0
pand xmm7, xmm5
pand xmm3, xmm10
psrlw xmm5, 8
movdqu xmm14, xmm9
psrlw xmm10, 8
psrlw xmm11, 8
packuswb xmm7, xmm3
packuswb xmm5, xmm10
movdqu xmm3, xmm0
movdqu xmm10, xmm0
pand xmm10, xmm4
pand xmm3, xmm1
packuswb xmm6, xmm11
psrlw xmm4, 8
psrlw xmm1, 8
packuswb xmm3, xmm10
packuswb xmm1, xmm4
movdqu xmm4, xmm0
pand xmm0, xmm2
pand xmm4, xmm8
psrlw xmm8, 8
movdqu xmm10, xmm3
packuswb xmm4, xmm0
psrlw xmm2, 8
movdqu xmm15, xmm8
packuswb xmm15, xmm2
movdqu xmm11, xmm4
pxor xmm2, xmm2
punpcklbw xmm11, xmm2
pxor xmm0, xmm0
punpcklbw xmm14, xmm2
movdqu xmm13, xmm11
movdqu xmm8, xmm14
punpcklbw xmm10, xmm2
punpcklwd xmm13, xmm0
punpcklwd xmm8, xmm0
movdqu xmm12, xmm7
pslld xmm13, 0x18
punpcklbw xmm12, xmm2
punpckhbw xmm4, xmm2
pxor xmm13, xmm8
movdqu xmm8, xmm10
punpckhwd xmm10, xmm0
punpcklwd xmm8, xmm0
psllw xmm12, 8
punpckhbw xmm9, xmm2
pslld xmm8, 0x10
pslld xmm10, 0x10
punpckhbw xmm3, xmm2
movups xmmword [rsp], xmm8
movdqu xmm8, xmm12
punpckhwd xmm12, xmm0
punpckhbw xmm7, xmm2
punpcklwd xmm8, xmm0
pxor xmm8, xmmword [rsp]
pxor xmm12, xmm10
movdqu xmm10, xmm4
punpckhwd xmm11, xmm0
punpckhwd xmm14, xmm0
pxor xmm13, xmm8
punpcklwd xmm10, xmm0
punpckhwd xmm4, xmm0
pslld xmm10, 0x18
psllw xmm7, 8
movdqu xmm8, xmm9
punpcklwd xmm8, xmm0
pslld xmm11, 0x18
punpckhwd xmm9, xmm0
pxor xmm10, xmm8
movdqu xmm8, xmm3
punpckhwd xmm3, xmm0
pxor xmm14, xmm11
punpcklwd xmm8, xmm0
movdqu xmm11, xmm7
pslld xmm3, 0x10
punpckhwd xmm7, xmm0
punpcklwd xmm11, xmm0
pxor xmm7, xmm3
pslld xmm8, 0x10
movdqu xmm3, xmm6
punpcklbw xmm3, xmm2
punpckhbw xmm6, xmm2
pxor xmm8, xmm11
pslld xmm4, 0x18
pxor xmm10, xmm8
movdqu xmm8, xmm3
pxor xmm9, xmm4
movdqu xmm4, xmm3
movdqu xmm3, xmm6
movups xmmword [rsp + 0x10], xmm10
punpckhwd xmm3, xmm0
pxor xmm14, xmm12
pxor xmm9, xmm7
movups xmmword [rsp + 0x50], xmm3
movdqu xmm3, xmm5
punpckhbw xmm5, xmm2
movdqu xmm7, xmm6
punpcklbw xmm3, xmm2
movdqu xmm11, xmm5
movdqu xmm6, xmm1
movups xmmword [rsp], xmm9
movdqu xmm12, xmm3
punpckhwd xmm4, xmm0
punpckhwd xmm11, xmm0
movups xmmword [rsp + 0x20], xmm14
punpcklwd xmm12, xmm0
punpcklbw xmm6, xmm2
punpckhbw xmm1, xmm2
movups xmmword [rsp + 0x30], xmm4
movdqu xmm10, xmm12
movdqu xmm12, xmm5
movdqu xmm5, xmm15
movups xmmword [rsp + 0x70], xmm11
punpcklwd xmm12, xmm0
punpcklbw xmm5, xmm2
punpckhbw xmm15, xmm2
movups xmmword [rsp + 0x60], xmm12
movdqu xmm11, xmm6
movdqu xmm9, xmm1
movdqu xmm2, xmm15
movdqu xmm4, xmm5
movdqu xmm12, xmm15
punpcklwd xmm8, xmm0
punpcklwd xmm7, xmm0
punpckhwd xmm3, xmm0
punpcklwd xmm11, xmm0
punpckhwd xmm6, xmm0
punpcklwd xmm9, xmm0
punpckhwd xmm1, xmm0
movups xmmword [rsp + 0x40], xmm7
punpcklwd xmm4, xmm0
punpckhwd xmm5, xmm0
punpcklwd xmm12, xmm0
punpckhwd xmm2, xmm0
movdqu xmm14, xmm10
pxor xmm0, xmm0
punpckldq xmm14, xmm0
punpckhdq xmm10, xmm0
movdqu xmm15, xmm14
psllq xmm10, 0x28
movdqu xmm14, xmm8
punpckldq xmm14, xmm0
psllq xmm15, 0x28
punpckhdq xmm8, xmm0
psllq xmm14, 0x20
psllq xmm8, 0x20
pxor xmm15, xmm14
pxor xmm10, xmm8
movdqu xmm8, xmm3
movdqu xmm14, xmm15
movdqu xmm15, xmm4
punpckhdq xmm4, xmm0
punpckldq xmm15, xmm0
psllq xmm4, 0x38
punpckldq xmm8, xmm0
movdqu xmm7, xmm15
movdqu xmm15, xmm11
punpckhdq xmm11, xmm0
punpckldq xmm15, xmm0
psllq xmm7, 0x38
punpckhdq xmm3, xmm0
psllq xmm15, 0x30
psllq xmm11, 0x30
pxor xmm7, xmm15
movdqu xmm15, xmm13
pxor xmm4, xmm11
punpckldq xmm15, xmm0
pxor xmm14, xmm7
pxor xmm10, xmm4
pxor xmm14, xmm15
psllq xmm8, 0x28
punpckhdq xmm13, xmm0
movdqu xmm15, xmmword [rsp + 0x30]
pxor xmm10, xmm13
psllq xmm3, 0x28
movdqu xmm13, xmmword [rsp + 0x20]
movups xmmword [rdx], xmm14
movdqu xmm4, xmm15
movups xmmword [rdx + 0x10], xmm10
punpckldq xmm4, xmm0
psllq xmm4, 0x20
pxor xmm8, xmm4
movdqu xmm4, xmm5
punpckhdq xmm5, xmm0
movdqu xmm7, xmm8
movdqu xmm8, xmm6
punpckldq xmm4, xmm0
punpckldq xmm8, xmm0
psllq xmm4, 0x38
punpckhdq xmm6, xmm0
psllq xmm8, 0x30
psllq xmm6, 0x30
pxor xmm4, xmm8
psllq xmm5, 0x38
movdqu xmm8, xmm13
pxor xmm7, xmm4
movdqu xmm4, xmm15
pxor xmm5, xmm6
punpckhdq xmm4, xmm0
punpckldq xmm8, xmm0
psllq xmm4, 0x20
pxor xmm7, xmm8
pxor xmm3, xmm4
movups xmmword [rdx + 0x20], xmm7
pxor xmm3, xmm5
movdqu xmm5, xmm13
punpckhdq xmm5, xmm0
pxor xmm3, xmm5
movdqu xmm5, xmm9
punpckhdq xmm9, xmm0
movups xmmword [rdx + 0x30], xmm3
movdqu xmm7, xmmword [rsp + 0x40]
punpckldq xmm5, xmm0
movdqu xmm13, xmmword [rsp + 0x60]
movdqu xmm6, xmmword [rsp + 0x10]
psllq xmm5, 0x30
psllq xmm9, 0x30
movdqu xmm10, xmmword [rdx + 0xa0]
movdqu xmm3, xmm7
movdqu xmm4, xmm13
punpckldq xmm4, xmm0
punpckldq xmm3, xmm0
psllq xmm4, 0x28
psllq xmm3, 0x20
pxor xmm3, xmm4
movdqu xmm4, xmm12
punpckhdq xmm12, xmm0
punpckldq xmm4, xmm0
psllq xmm12, 0x38
psllq xmm4, 0x38
pxor xmm9, xmm12
pxor xmm4, xmm5
movdqu xmm5, xmm1
punpckhdq xmm1, xmm0
pxor xmm3, xmm4
movdqu xmm4, xmm6
punpckhdq xmm6, xmm0
punpckldq xmm4, xmm0
psllq xmm1, 0x30
punpckldq xmm5, xmm0
pxor xmm3, xmm4
psllq xmm5, 0x30
movdqu xmm4, xmm13
punpckhdq xmm4, xmm0
movups xmmword [rdx + 0x40], xmm3
movdqu xmm3, xmm4
movdqu xmm4, xmm7
movdqu xmm7, xmmword [rsp + 0x70]
punpckhdq xmm4, xmm0
psllq xmm3, 0x28
psllq xmm4, 0x20
pxor xmm3, xmm4
movdqu xmm4, xmm7
pxor xmm3, xmm9
punpckldq xmm4, xmm0
movdqu xmm9, xmm7
movdqu xmm7, xmmword [rdx + 0x90]
pxor xmm3, xmm6
movdqu xmm6, xmmword [rsp + 0x50]
punpckhdq xmm9, xmm0
movups xmmword [rdx + 0x50], xmm3
movdqu xmm3, xmm4
psllq xmm9, 0x28
movdqu xmm4, xmm6
psllq xmm3, 0x28
punpckhdq xmm6, xmm0
punpckldq xmm4, xmm0
psllq xmm6, 0x20
psllq xmm4, 0x20
pxor xmm9, xmm6
movdqu xmm6, xmmword [rdx + 0xc0]
pxor xmm3, xmm4
movdqu xmm4, xmm2
punpckhdq xmm2, xmm0
punpckldq xmm4, xmm0
psllq xmm2, 0x38
psllq xmm4, 0x38
pxor xmm1, xmm2
pxor xmm4, xmm5
movdqu xmm5, xmmword [rsp]
pxor xmm9, xmm1
movdqu xmm1, xmmword [rdx + 0xf0]
pxor xmm3, xmm4
movdqu xmm4, xmm5
punpckhdq xmm5, xmm0
punpckldq xmm4, xmm0
pxor xmm9, xmm5
movdqu xmm0, xmmword [rdx + 0xb0]
pxor xmm3, xmm4
movups xmmword [rdx + 0x70], xmm9
movdqu xmm4, xmmword [rdx + 0xd0]
movdqu xmm9, xmmword [rdx + 0x80]
movups xmmword [rdx + 0x60], xmm3
movdqu xmm3, xmmword [rdx + 0xe0]
nop dword [rax]
movzx r9d, byte [rax]
movzx r8d, byte [rax + 2]
paddq xmm7, xmm0
add rax, 0x10
paddq xmm9, xmm10
movq xmm5, qword [rdx + r9*8]
movzx r9d, byte [rax - 0xf]
movhps xmm5, qword [rdx + r8*8]
movzx r8d, byte [rax - 0xd]
paddq xmm9, xmm5
movq xmm5, qword [rdx + r9*8]
movzx r9d, byte [rax - 0xc]
pxor xmm3, xmm9
pshufd xmm3, xmm3, 0xb1
movhps xmm5, qword [rdx + r8*8]
movzx r8d, byte [rax - 0xa]
paddq xmm6, xmm3
pxor xmm10, xmm6
movdqu xmm2, xmm10
psrlq xmm10, 0x18
psllq xmm2, 0x28
por xmm2, xmm10
paddq xmm5, xmm2
paddq xmm5, xmm9
pxor xmm3, xmm5
pshuflw xmm3, xmm3, 0x39
pshufhw xmm3, xmm3, 0x39
paddq xmm6, xmm3
pxor xmm2, xmm6
movdqu xmm10, xmm2
psrlq xmm2, 0x3f
psllq xmm10, 1
por xmm2, xmm10
movq xmm10, qword [rdx + r9*8]
movzx r9d, byte [rax - 0xb]
movdqu xmm8, xmm2
pslldq xmm2, 8
movhps xmm10, qword [rdx + r8*8]
movzx r8d, byte [rax - 9]
psrldq xmm8, 8
movdqu xmm9, xmm10
movq xmm10, qword [rdx + r9*8]
movzx r9d, byte [rax - 8]
paddq xmm9, xmm7
pxor xmm1, xmm9
movhps xmm10, qword [rdx + r8*8]
movzx r8d, byte [rax - 6]
pshufd xmm7, xmm1, 0xb1
paddq xmm4, xmm7
pxor xmm0, xmm4
movdqu xmm1, xmm0
psrlq xmm0, 0x18
psllq xmm1, 0x28
por xmm0, xmm1
paddq xmm10, xmm0
paddq xmm10, xmm9
movq xmm9, qword [rdx + r9*8]
movzx r9d, byte [rax - 7]
pxor xmm7, xmm10
pshuflw xmm7, xmm7, 0x39
movhps xmm9, qword [rdx + r8*8]
movzx r8d, byte [rax - 5]
pshufhw xmm7, xmm7, 0x39
paddq xmm4, xmm7
movdqu xmm12, xmm7
pxor xmm0, xmm4
pslldq xmm12, 8
movdqu xmm1, xmm0
psrlq xmm0, 0x3f
psllq xmm1, 1
por xmm0, xmm1
movdqu xmm1, xmm0
psrldq xmm0, 8
pslldq xmm1, 8
por xmm2, xmm0
movdqu xmm0, xmm3
pslldq xmm0, 8
psrldq xmm3, 8
por xmm1, xmm8
paddq xmm9, xmm1
movdqu xmm8, xmm7
por xmm3, xmm12
paddq xmm5, xmm9
psrldq xmm8, 8
movq xmm9, qword [rdx + r9*8]
movzx r9d, byte [rax - 4]
por xmm8, xmm0
movq xmm7, qword [rdx + r9*8]
pxor xmm8, xmm5
movhps xmm9, qword [rdx + r8*8]
movzx r8d, byte [rax - 2]
pshufd xmm8, xmm8, 0xb1
movzx r9d, byte [rax - 3]
paddq xmm4, xmm8
movhps xmm7, qword [rdx + r8*8]
movzx r8d, byte [rax - 1]
pxor xmm1, xmm4
paddq xmm7, xmm2
paddq xmm10, xmm7
movdqu xmm0, xmm1
movq xmm7, qword [rdx + r9*8]
psrlq xmm1, 0x18
psllq xmm0, 0x28
pxor xmm3, xmm10
por xmm0, xmm1
pshufd xmm1, xmm3, 0xb1
movhps xmm7, qword [rdx + r8*8]
paddq xmm6, xmm1
paddq xmm9, xmm0
pxor xmm2, xmm6
paddq xmm9, xmm5
movdqu xmm5, xmm2
psrlq xmm2, 0x18
pxor xmm8, xmm9
psllq xmm5, 0x28
pshuflw xmm8, xmm8, 0x39
por xmm2, xmm5
pshufhw xmm8, xmm8, 0x39
paddq xmm7, xmm2
paddq xmm4, xmm8
paddq xmm7, xmm10
pxor xmm0, xmm4
pxor xmm1, xmm7
movdqu xmm11, xmm0
psllq xmm11, 1
psrlq xmm0, 0x3f
pshuflw xmm1, xmm1, 0x39
pshufhw xmm1, xmm1, 0x39
por xmm11, xmm0
paddq xmm6, xmm1
movdqu xmm10, xmm11
movdqu xmm3, xmm1
pslldq xmm10, 8
pslldq xmm3, 8
pxor xmm2, xmm6
movdqu xmm0, xmm2
psrlq xmm2, 0x3f
psllq xmm0, 1
psrldq xmm1, 8
por xmm2, xmm0
movdqu xmm0, xmm2
pslldq xmm2, 8
psrldq xmm0, 8
por xmm10, xmm0
movdqu xmm0, xmm11
psrldq xmm0, 8
por xmm0, xmm2
movdqu xmm2, xmm8
psrldq xmm2, 8
pslldq xmm8, 8
por xmm3, xmm2
por xmm1, xmm8
cmp rax, r10
jne 0x440af8
movups xmmword [rdx + 0x80], xmm9
pxor xmm9, xmm6
pxor xmm9, xmmword [rcx + 0x80]
movups xmmword [rdx + 0xe0], xmm3
pxor xmm3, xmm10
pxor xmm3, xmmword [rcx + 0xa0]
movups xmmword [rdx + 0xb0], xmm0
pxor xmm0, xmm1
pxor xmm0, xmmword [rcx + 0xb0]
movups xmmword [rdx + 0xd0], xmm4
pxor xmm4, xmm7
pxor xmm4, xmmword [rcx + 0x90]
movups xmmword [rdx + 0xa0], xmm10
movups xmmword [rdx + 0xc0], xmm6
movups xmmword [rdx + 0x90], xmm7
movups xmmword [rdx + 0xf0], xmm1
movups xmm6, xmmword [rsp + 0x190]
movups xmm7, xmmword [rsp + 0x1a0]
movups xmm8, xmmword [rsp + 0x1b0]
movups xmmword [rcx + 0x90], xmm4
movups xmm10, xmmword [rsp + 0x1d0]
movups xmm11, xmmword [rsp + 0x1e0]
movups xmmword [rcx + 0xa0], xmm3
movups xmm12, xmmword [rsp + 0x1f0]
movups xmm13, xmmword [rsp + 0x200]
movups xmmword [rcx + 0xb0], xmm0
movups xmm14, xmmword [rsp + 0x210]
movups xmmword [rcx + 0x80], xmm9
movups xmm15, xmmword [rsp + 0x220]
movups xmm9, xmmword [rsp + 0x1c0]
add rsp, 0x238
ret