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