Function at 0x442f10
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 [0x006101a0]
movdqu xmm5, xmmword [rcx + 0x80]
pxor xmm0, xmmword [rcx + 0xc0]
mov r9d, edx
lea rdx, [rsp + 0x9f]
and rdx, 0xffffffffffffffe0
movups xmmword [rdx + 0x80], xmm5
movdqu xmm5, xmmword [rcx + 0x90]
movups xmmword [rdx + 0x90], xmm5
movdqu xmm5, xmmword [rcx + 0xa0]
movups xmmword [rdx + 0xa0], xmm5
movdqu xmm5, xmmword [rcx + 0xb0]
movups xmmword [rdx + 0xe0], xmm0
movups xmmword [rdx + 0xb0], xmm5
movdqu xmm5, xmmword [0x00610180]
movups xmmword [rdx + 0xc0], xmm5
movdqu xmm5, xmmword [0x00610190]
movups xmmword [rdx + 0xd0], xmm5
movdqu xmm5, xmmword [0x006101b0]
movups xmmword [rdx + 0xf0], xmm5
test r9d, r9d
je 0x44300a
not qword [rdx + 0xf0]
movdqu xmm1, xmmword [rcx]
movdqu xmm0, xmmword [0x006101c0]
lea rax, [0x006100c0]
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
pxor xmm8, xmm11
pxor xmm14, xmm12
pslld xmm4, 0x18
pxor xmm10, xmm8
punpckhbw xmm6, xmm2
movups xmmword [rsp + 0x20], xmm14
pxor xmm9, xmm4
movdqu xmm8, xmm3
movdqu xmm4, xmm3
movups xmmword [rsp + 0x10], xmm10
movdqu xmm3, xmm5
pxor xmm9, xmm7
punpckhbw xmm5, xmm2
punpcklbw xmm3, xmm2
movdqu xmm7, xmm6
punpckhwd xmm6, xmm0
movups xmmword [rsp], xmm9
movdqu xmm12, xmm3
movups xmmword [rsp + 0x50], xmm6
movdqu xmm11, xmm5
movdqu xmm6, xmm1
punpcklwd xmm12, xmm0
punpckhwd xmm4, xmm0
punpckhwd xmm11, xmm0
movdqu xmm10, xmm12
movdqu xmm12, xmm5
movdqu xmm5, xmm15
movups xmmword [rsp + 0x30], xmm4
punpcklwd xmm12, xmm0
punpcklbw xmm6, xmm2
punpckhbw xmm1, xmm2
movups xmmword [rsp + 0x70], xmm11
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
movups xmmword [rsp + 0x40], xmm7
punpcklwd xmm9, xmm0
punpckhwd xmm1, xmm0
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
movdqu xmm14, xmm9
punpckhdq xmm9, xmm0
punpckldq xmm4, xmm0
psllq xmm9, 0x30
punpckldq xmm14, 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, xmm14
movups xmmword [rdx + 0x30], xmm3
movdqu xmm13, xmmword [rsp + 0x60]
movdqu xmm7, xmmword [rsp + 0x40]
psllq xmm5, 0x30
movdqu xmm10, xmmword [rdx + 0x90]
movdqu xmm3, xmm13
punpckldq xmm3, xmm0
movdqu xmm4, xmm3
movdqu xmm3, xmm7
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, xmmword [rsp + 0x10]
pxor xmm3, xmm4
movdqu xmm4, xmm5
punpckhdq xmm5, xmm0
punpckldq xmm4, xmm0
pxor xmm3, xmm4
movdqu xmm4, xmm7
movdqu xmm7, xmmword [rsp + 0x50]
movups xmmword [rdx + 0x40], xmm3
movdqu xmm3, xmm13
punpckhdq xmm4, xmm0
movdqu xmm13, xmmword [rsp + 0x70]
punpckhdq xmm3, xmm0
psllq xmm4, 0x20
movdqu xmm6, xmm7
psllq xmm3, 0x28
punpckhdq xmm6, xmm0
pxor xmm3, xmm4
psllq xmm6, 0x20
movdqu xmm4, xmm7
pxor xmm3, xmm9
punpckldq xmm4, xmm0
movdqu xmm9, xmm13
pxor xmm3, xmm5
psllq xmm4, 0x20
movdqu xmm5, xmm1
movups xmmword [rdx + 0x50], xmm3
movdqu xmm3, xmm13
punpckldq xmm5, xmm0
punpckhdq xmm1, xmm0
punpckldq xmm3, xmm0
psllq xmm5, 0x30
punpckhdq xmm9, xmm0
psllq xmm3, 0x28
psllq xmm9, 0x28
pxor xmm3, xmm4
movdqu xmm4, xmm2
punpckhdq xmm2, xmm0
punpckldq xmm4, xmm0
psllq xmm2, 0x38
pxor xmm9, xmm6
movdqu xmm6, xmmword [rdx + 0x80]
psllq xmm4, 0x38
psllq xmm1, 0x30
pxor xmm4, xmm5
movdqu xmm5, xmmword [rsp]
pxor xmm1, xmm2
movdqu xmm2, xmmword [rdx + 0xf0]
pxor xmm3, xmm4
pxor xmm9, xmm1
movdqu xmm1, xmmword [rdx + 0xa0]
movdqu xmm4, xmm5
punpckhdq xmm5, xmm0
movdqu xmm8, xmm2
punpckldq xmm4, xmm0
pxor xmm9, xmm5
movdqu xmm0, xmmword [rdx + 0xb0]
movdqu xmm5, xmmword [rdx + 0xd0]
pxor xmm3, xmm4
movdqu xmm4, xmmword [rdx + 0xc0]
movups xmmword [rdx + 0x70], xmm9
movups xmmword [rdx + 0x60], xmm3
movdqu xmm3, xmmword [rdx + 0xe0]
nop dword [rax]
movzx r9d, byte [rax]
movzx r8d, byte [rax + 2]
paddq xmm6, xmm1
paddq xmm10, xmm0
add rax, 0x10
movq xmm11, qword [rdx + r9*8]
movzx r9d, byte [rax - 0xf]
movhps xmm11, qword [rdx + r8*8]
movzx r8d, byte [rax - 0xd]
paddq xmm6, xmm11
movq xmm11, qword [rdx + r9*8]
movzx r9d, byte [rax - 0xc]
pxor xmm3, xmm6
movdqu xmm2, xmm3
psrlq xmm3, 0x20
movhps xmm11, qword [rdx + r8*8]
movq xmm7, qword [rdx + r9*8]
psllq xmm2, 0x20
movzx r8d, byte [rax - 0xa]
movzx r9d, byte [rax - 0xb]
por xmm3, xmm2
paddq xmm4, xmm3
movhps xmm7, qword [rdx + r8*8]
movzx r8d, byte [rax - 9]
pxor xmm1, xmm4
paddq xmm10, xmm7
movq xmm7, qword [rdx + r9*8]
movzx r9d, byte [rax - 8]
movdqu xmm2, xmm1
psrlq xmm1, 0x18
pxor xmm8, xmm10
psllq xmm2, 0x28
movhps xmm7, qword [rdx + r8*8]
movzx r8d, byte [rax - 6]
por xmm1, xmm2
paddq xmm11, xmm1
paddq xmm11, xmm6
pxor xmm3, xmm11
movdqu xmm2, xmm3
psrlq xmm3, 0x10
psllq xmm2, 0x30
por xmm3, xmm2
paddq xmm4, xmm3
pxor xmm1, xmm4
movdqu xmm2, xmm1
psrlq xmm1, 0x3f
psllq xmm2, 1
por xmm1, xmm2
movdqu xmm2, xmm8
psllq xmm2, 0x20
psrlq xmm8, 0x20
movdqu xmm9, xmm1
psrldq xmm9, 8
pslldq xmm1, 8
por xmm2, xmm8
paddq xmm5, xmm2
pxor xmm0, xmm5
movdqu xmm6, xmm0
psrlq xmm0, 0x18
psllq xmm6, 0x28
por xmm0, xmm6
paddq xmm7, xmm0
paddq xmm7, xmm10
pxor xmm2, xmm7
movdqu xmm6, xmm2
psrlq xmm2, 0x10
psllq xmm6, 0x30
por xmm2, xmm6
paddq xmm5, xmm2
movdqu xmm8, xmm2
psrldq xmm8, 8
pslldq xmm2, 8
pxor xmm0, xmm5
movdqu xmm6, xmm0
psrlq xmm0, 0x3f
psllq xmm6, 1
por xmm0, xmm6
movdqu xmm6, xmm0
psrldq xmm0, 8
pslldq xmm6, 8
por xmm1, xmm0
movdqu xmm0, xmm3
pslldq xmm0, 8
psrldq xmm3, 8
por xmm9, xmm6
movq xmm6, qword [rdx + r9*8]
por xmm8, xmm0
movzx r9d, byte [rax - 7]
por xmm3, xmm2
movhps xmm6, qword [rdx + r8*8]
movzx r8d, byte [rax - 5]
paddq xmm6, xmm9
paddq xmm11, xmm6
movq xmm6, qword [rdx + r9*8]
movzx r9d, byte [rax - 4]
pxor xmm8, xmm11
movdqu xmm0, xmm8
psrlq xmm8, 0x20
movhps xmm6, qword [rdx + r8*8]
movzx r8d, byte [rax - 2]
psllq xmm0, 0x20
por xmm8, xmm0
paddq xmm5, xmm8
pxor xmm9, xmm5
movdqu xmm10, xmm9
psrlq xmm9, 0x18
psllq xmm10, 0x28
por xmm9, xmm10
paddq xmm6, xmm9
paddq xmm6, xmm11
pxor xmm8, xmm6
movdqu xmm0, xmm8
psrlq xmm8, 0x10
psllq xmm0, 0x30
por xmm8, xmm0
paddq xmm5, xmm8
pxor xmm9, xmm5
movdqu xmm10, xmm9
psllq xmm9, 1
psrlq xmm10, 0x3f
por xmm9, xmm10
movq xmm10, qword [rdx + r9*8]
movzx r9d, byte [rax - 3]
movhps xmm10, qword [rdx + r8*8]
movzx r8d, byte [rax - 1]
paddq xmm10, xmm1
paddq xmm7, xmm10
movq xmm10, qword [rdx + r9*8]
pxor xmm3, xmm7
movdqu xmm2, xmm3
psrlq xmm3, 0x20
movhps xmm10, qword [rdx + r8*8]
psllq xmm2, 0x20
por xmm3, xmm2
paddq xmm4, xmm3
pxor xmm1, xmm4
movdqu xmm0, xmm1
psrlq xmm1, 0x18
psllq xmm0, 0x28
por xmm1, xmm0
paddq xmm10, xmm1
paddq xmm10, xmm7
movdqu xmm7, xmm8
psrldq xmm7, 8
pslldq xmm8, 8
pxor xmm3, xmm10
movdqu xmm2, xmm3
psrlq xmm3, 0x10
psllq xmm2, 0x30
por xmm2, xmm3
paddq xmm4, xmm2
pxor xmm1, xmm4
movdqu xmm3, xmm1
psrlq xmm1, 0x3f
psllq xmm3, 1
por xmm3, xmm1
movdqu xmm1, xmm9
movdqu xmm0, xmm3
pslldq xmm1, 8
psrldq xmm0, 8
pslldq xmm3, 8
por xmm1, xmm0
movdqu xmm0, xmm9
psrldq xmm0, 8
por xmm0, xmm3
movdqu xmm3, xmm2
pslldq xmm3, 8
psrldq xmm2, 8
por xmm3, xmm7
por xmm8, xmm2
cmp rax, r10
jne 0x443740
movups xmmword [rdx + 0x80], xmm6
pxor xmm6, xmm4
pxor xmm6, xmmword [rcx + 0x80]
movups xmmword [rdx + 0x90], xmm10
pxor xmm10, xmm5
pxor xmm10, xmmword [rcx + 0x90]
movups xmmword [rdx + 0xe0], xmm3
pxor xmm3, xmm1
pxor xmm3, xmmword [rcx + 0xa0]
movups xmmword [rdx + 0xb0], xmm0
pxor xmm0, xmm8
pxor xmm0, xmmword [rcx + 0xb0]
movups xmmword [rdx + 0xa0], xmm1
movups xmmword [rdx + 0xc0], xmm4
movups xmmword [rdx + 0xf0], xmm8
movups xmmword [rdx + 0xd0], xmm5
movups xmm7, xmmword [rsp + 0x1a0]
movups xmm8, xmmword [rsp + 0x1b0]
movups xmm9, xmmword [rsp + 0x1c0]
movups xmmword [rcx + 0x80], xmm6
movups xmm11, xmmword [rsp + 0x1e0]
movups xmmword [rcx + 0x90], xmm10
movups xmm6, xmmword [rsp + 0x190]
movups xmm10, xmmword [rsp + 0x1d0]
movups xmm12, xmmword [rsp + 0x1f0]
movups xmmword [rcx + 0xa0], xmm3
movups xmm13, xmmword [rsp + 0x200]
movups xmm14, xmmword [rsp + 0x210]
movups xmmword [rcx + 0xb0], xmm0
movups xmm15, xmmword [rsp + 0x220]
add rsp, 0x238
ret