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

Disassembly:
sub rsp, 0x228
movups xmmword [rsp + 0x180], xmm6
movups xmmword [rsp + 0x190], xmm7
movups xmmword [rsp + 0x1a0], xmm8
movups xmmword [rsp + 0x1b0], xmm9
movups xmmword [rsp + 0x1c0], xmm10
movups xmmword [rsp + 0x1d0], xmm11
movups xmmword [rsp + 0x1e0], xmm12
movups xmmword [rsp + 0x1f0], xmm13
movups xmmword [rsp + 0x200], xmm14
movups xmmword [rsp + 0x210], xmm15
movdqu xmm0, xmmword [0x005f61c0]
movdqu xmm5, xmmword [rcx + 0x80]
pxor xmm0, xmmword [rcx + 0xc0]
mov r9d, edx
lea rdx, [rsp + 0x8f]
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 [0x005f61a0]
movups xmmword [rdx + 0xc0], xmm5
movdqu xmm5, xmmword [0x005f61b0]
movups xmmword [rdx + 0xd0], xmm5
movdqu xmm5, xmmword [0x005f61d0]
movups xmmword [rdx + 0xf0], xmm5
test r9d, r9d
je 0x43e40a
not qword [rdx + 0xf0]
movdqu xmm1, xmmword [0x005f61e0]
movdqu xmm0, xmmword [rcx]
lea rax, [0x005f60e0]
movdqu xmm9, xmmword [rcx + 0x10]
movdqu xmm3, xmm1
movdqu xmm10, xmm1
movdqu xmm4, xmmword [rcx + 0x30]
pand xmm3, xmm0
psrlw xmm0, 8
lea r10, [rax + 0xc0]
movdqu xmm8, xmmword [rcx + 0x20]
pand xmm10, xmm9
psrlw xmm9, 8
packuswb xmm3, xmm10
packuswb xmm0, xmm9
movdqu xmm10, xmm1
movdqu xmm9, xmm1
movdqu xmm2, xmmword [rcx + 0x40]
movdqu xmm5, xmmword [rcx + 0x50]
pand xmm10, xmm4
pand xmm9, xmm8
psrlw xmm4, 8
psrlw xmm8, 8
packuswb xmm9, xmm10
movdqu xmm10, xmm1
movdqu xmm7, xmmword [rcx + 0x60]
packuswb xmm8, xmm4
movdqu xmm4, xmm1
movdqu xmm6, xmmword [rcx + 0x70]
pand xmm10, xmm5
pand xmm4, xmm2
psrlw xmm5, 8
packuswb xmm4, xmm10
movdqu xmm10, xmm1
psrlw xmm2, 8
pand xmm10, xmm6
packuswb xmm2, xmm5
movdqu xmm5, xmm1
psrlw xmm6, 8
pand xmm5, xmm7
psrlw xmm7, 8
packuswb xmm5, xmm10
movdqu xmm10, xmm1
packuswb xmm7, xmm6
movdqu xmm6, xmm1
pand xmm10, xmm9
psrlw xmm9, 8
pand xmm6, xmm3
psrlw xmm3, 8
packuswb xmm6, xmm10
movdqu xmm10, xmm1
packuswb xmm3, xmm9
movdqu xmm9, xmm1
pand xmm10, xmm4
psrlw xmm4, 8
pand xmm9, xmm5
psrlw xmm5, 8
packuswb xmm10, xmm9
movdqu xmm9, xmm1
packuswb xmm4, xmm5
movdqu xmm5, xmm1
pand xmm9, xmm8
psrlw xmm8, 8
pand xmm5, xmm0
psrlw xmm0, 8
packuswb xmm5, xmm9
movdqu xmm9, xmm1
packuswb xmm0, xmm8
movdqu xmm8, xmm1
pand xmm9, xmm7
psrlw xmm7, 8
pand xmm8, xmm2
psrlw xmm2, 8
packuswb xmm8, xmm9
movdqu xmm9, xmm1
packuswb xmm2, xmm7
movdqu xmm7, xmm1
pand xmm9, xmm6
psrlw xmm6, 8
pand xmm7, xmm10
psrlw xmm10, 8
packuswb xmm9, xmm7
movdqu xmm7, xmm1
packuswb xmm6, xmm10
movdqu xmm10, xmm1
pand xmm7, xmm5
psrlw xmm5, 8
pand xmm10, xmm8
psrlw xmm8, 8
packuswb xmm7, xmm10
movdqu xmm10, xmm1
packuswb xmm5, xmm8
movdqu xmm8, xmm1
pand xmm10, xmm4
psrlw xmm4, 8
pand xmm8, xmm3
psrlw xmm3, 8
packuswb xmm8, xmm10
pmovzxbw xmm10, xmm8
packuswb xmm3, xmm4
movdqu xmm4, xmm1
pand xmm1, xmm2
psrlw xmm2, 8
pand xmm4, xmm0
psrlw xmm0, 8
packuswb xmm4, xmm1
pmovzxbw xmm11, xmm9
packuswb xmm0, xmm2
psrldq xmm8, 8
pmovzxbw xmm2, xmm4
pmovzxbw xmm12, xmm7
pmovzxbw xmm1, xmm8
psrldq xmm4, 8
pmovzxwd xmm8, xmm2
psrldq xmm2, 8
pmovzxwd xmm13, xmm11
pmovzxbw xmm4, xmm4
pslld xmm8, 0x18
pmovzxwd xmm2, xmm2
psrldq xmm11, 8
pxor xmm13, xmm8
pmovzxwd xmm8, xmm10
psllw xmm12, 8
pmovzxwd xmm11, xmm11
pslld xmm2, 0x18
pmovzxwd xmm14, xmm12
psrldq xmm10, 8
pxor xmm11, xmm2
psrldq xmm12, 8
pmovzxwd xmm2, xmm10
pmovzxwd xmm12, xmm12
psrldq xmm9, 8
pslld xmm2, 0x10
pmovzxbw xmm9, xmm9
pxor xmm2, xmm12
psrldq xmm7, 8
pxor xmm2, xmm11
pmovzxwd xmm11, xmm4
pmovzxwd xmm10, xmm9
pslld xmm11, 0x18
pmovzxbw xmm7, xmm7
psllw xmm7, 8
pxor xmm11, xmm10
pmovzxwd xmm10, xmm1
psrldq xmm1, 8
pmovzxwd xmm12, xmm7
pmovzxwd xmm1, xmm1
psrldq xmm7, 8
pmovzxwd xmm7, xmm7
psrldq xmm4, 8
pslld xmm1, 0x10
pmovzxwd xmm4, xmm4
pxor xmm1, xmm7
pmovzxbw xmm7, xmm6
psrldq xmm9, 8
psrldq xmm6, 8
pmovzxwd xmm9, xmm9
pmovzxbw xmm6, xmm6
pslld xmm4, 0x18
pxor xmm4, xmm9
pxor xmm4, xmm1
pmovzxwd xmm1, xmm6
psrldq xmm6, 8
pmovzxwd xmm6, xmm6
movups xmmword [rsp + 0x40], xmm1
pmovzxbw xmm1, xmm5
movups xmmword [rsp + 0x30], xmm6
psrldq xmm5, 8
pmovzxbw xmm6, xmm3
psrldq xmm3, 8
pmovzxbw xmm5, xmm5
movups xmmword [rsp + 0x50], xmm4
pmovzxbw xmm3, xmm3
pslld xmm8, 0x10
pmovzxwd xmm4, xmm5
pxor xmm8, xmm14
psrldq xmm5, 8
pmovzxwd xmm14, xmm3
pxor xmm8, xmm13
pslld xmm10, 0x10
pmovzxwd xmm13, xmm1
pmovzxwd xmm15, xmm5
movups xmmword [rsp + 0x10], xmm14
pxor xmm10, xmm12
psrldq xmm3, 8
pmovzxdq xmm14, xmm13
pxor xmm11, xmm10
movups xmmword [rsp + 0x20], xmm15
pmovzxwd xmm3, xmm3
pmovzxwd xmm10, xmm7
movdqu xmm15, xmm14
pmovzxdq xmm14, xmm10
movups xmmword [rsp], xmm3
psrldq xmm13, 8
pmovzxbw xmm3, xmm0
movups xmmword [rsp + 0x60], xmm11
psrldq xmm10, 8
movdqu xmm11, xmm14
pmovzxwd xmm12, xmm6
pmovzxwd xmm5, xmm3
psllq xmm11, 0x20
pmovzxdq xmm13, xmm13
psllq xmm15, 0x28
pmovzxdq xmm10, xmm10
pxor xmm15, xmm11
psllq xmm10, 0x20
movdqu xmm14, xmm15
pmovzxdq xmm11, xmm5
pmovzxdq xmm15, xmm12
psllq xmm13, 0x28
psrldq xmm12, 8
pxor xmm13, xmm10
psrldq xmm5, 8
pmovzxdq xmm10, xmm12
movdqu xmm12, xmmword [rdx + 0xa0]
psllq xmm15, 0x30
pmovzxdq xmm5, xmm5
psrldq xmm1, 8
psllq xmm11, 0x38
pmovzxwd xmm1, xmm1
pxor xmm11, xmm15
psllq xmm5, 0x38
pmovzxdq xmm15, xmm8
pxor xmm14, xmm11
psrldq xmm8, 8
pxor xmm14, xmm15
movups xmmword [rdx], xmm14
movdqu xmm14, xmmword [rsp + 0x10]
psrldq xmm7, 8
movdqu xmm15, xmmword [rsp + 0x20]
psllq xmm10, 0x30
pmovzxwd xmm7, xmm7
pxor xmm10, xmm5
pxor xmm10, xmm13
pmovzxdq xmm13, xmm8
pmovzxdq xmm8, xmm1
pxor xmm10, xmm13
psrldq xmm6, 8
movups xmmword [rdx + 0x10], xmm10
movdqu xmm10, xmm8
psrldq xmm3, 8
pmovzxdq xmm8, xmm7
pmovzxwd xmm6, xmm6
pmovzxwd xmm3, xmm3
psllq xmm8, 0x20
psllq xmm10, 0x28
pmovzxdq xmm5, xmm3
psrldq xmm1, 8
pxor xmm10, xmm8
movdqu xmm8, xmm10
pmovzxdq xmm10, xmm6
pmovzxdq xmm1, xmm1
psllq xmm10, 0x30
psllq xmm1, 0x28
psrldq xmm7, 8
psllq xmm5, 0x38
pxor xmm5, xmm10
pxor xmm8, xmm5
movdqu xmm5, xmm1
pmovzxdq xmm1, xmm7
psllq xmm1, 0x20
pmovzxdq xmm10, xmm2
movdqu xmm7, xmm1
psrldq xmm3, 8
movdqu xmm1, xmm5
movdqu xmm5, xmmword [rsp + 0x60]
psrldq xmm6, 8
pxor xmm1, xmm7
pmovzxdq xmm3, xmm3
movdqu xmm7, xmmword [rsp + 0x40]
pmovzxdq xmm6, xmm6
psrldq xmm2, 8
pxor xmm8, xmm10
movups xmmword [rdx + 0x20], xmm8
psllq xmm6, 0x30
pmovzxdq xmm2, xmm2
psrldq xmm0, 8
psllq xmm3, 0x38
pmovzxbw xmm0, xmm0
pxor xmm3, xmm6
pxor xmm1, xmm3
pxor xmm2, xmm1
pmovzxdq xmm1, xmm4
movups xmmword [rdx + 0x30], xmm2
pmovzxdq xmm2, xmm7
pmovzxwd xmm9, xmm0
pmovzxdq xmm3, xmm14
psllq xmm2, 0x20
movdqu xmm6, xmmword [rsp]
psllq xmm1, 0x28
pxor xmm1, xmm2
pmovzxdq xmm2, xmm9
psllq xmm3, 0x30
psllq xmm2, 0x38
pxor xmm2, xmm3
pxor xmm1, xmm2
pmovzxdq xmm2, xmm5
psrldq xmm9, 8
pxor xmm1, xmm2
movdqu xmm2, xmm14
psrldq xmm4, 8
pmovzxdq xmm9, xmm9
psrldq xmm2, 8
movups xmmword [rdx + 0x40], xmm1
pmovzxdq xmm1, xmm4
movdqu xmm4, xmm7
pmovzxdq xmm2, xmm2
psrldq xmm4, 8
pmovzxdq xmm3, xmm6
movdqu xmm7, xmmword [rsp + 0x30]
psllq xmm2, 0x30
pmovzxdq xmm4, xmm4
psllq xmm9, 0x38
pxor xmm9, xmm2
movdqu xmm2, xmm5
psllq xmm1, 0x28
movdqu xmm5, xmmword [rsp + 0x50]
psrldq xmm2, 8
pmovzxdq xmm2, xmm2
psllq xmm4, 0x20
psrldq xmm0, 8
pxor xmm1, xmm4
pxor xmm1, xmm9
pxor xmm1, xmm2
pmovzxdq xmm2, xmm7
movups xmmword [rdx + 0x50], xmm1
pmovzxdq xmm1, xmm15
pmovzxwd xmm0, xmm0
psllq xmm2, 0x20
psllq xmm1, 0x28
pxor xmm1, xmm2
pmovzxdq xmm2, xmm0
psllq xmm3, 0x30
psllq xmm2, 0x38
pxor xmm2, xmm3
pxor xmm1, xmm2
pmovzxdq xmm2, xmm5
psrldq xmm0, 8
pxor xmm1, xmm2
movdqu xmm2, xmm7
movups xmmword [rdx + 0x60], xmm1
movdqu xmm1, xmm15
psrldq xmm1, 8
pmovzxdq xmm0, xmm0
psrldq xmm2, 8
pmovzxdq xmm1, xmm1
pmovzxdq xmm2, xmm2
psllq xmm1, 0x28
psllq xmm2, 0x20
pxor xmm1, xmm2
movdqu xmm2, xmm6
psllq xmm0, 0x38
psrldq xmm2, 8
pmovzxdq xmm2, xmm2
psllq xmm2, 0x30
pxor xmm0, xmm2
pxor xmm0, xmm1
movdqu xmm1, xmm5
psrldq xmm1, 8
pmovzxdq xmm1, xmm1
pxor xmm0, xmm1
movups xmmword [rdx + 0x70], xmm0
movdqu xmm8, xmmword [rdx + 0x80]
movdqu xmm9, xmmword [rdx + 0xe0]
movdqu xmm1, xmmword [rdx + 0xc0]
movdqu xmm2, xmmword [rdx + 0xb0]
movdqu xmm11, xmmword [rdx + 0x90]
movdqu xmm6, xmmword [rdx + 0xf0]
movdqu xmm3, xmmword [rdx + 0xd0]
movdqu xmm5, xmmword [0x005f61f0]
nop dword [rax]
movzx r9d, byte [rax]
paddq xmm8, xmm12
paddq xmm11, xmm2
add rax, 0x10
movzx r8d, byte [rax - 0xe]
movq xmm10, qword [rdx + r9*8]
movzx r9d, byte [rax - 0xf]
pinsrq xmm10, qword [rdx + r8*8], 1
paddq xmm8, xmm10
movzx r8d, byte [rax - 0xd]
pxor xmm9, xmm8
pshufd xmm9, xmm9, 0xb1
paddq xmm1, xmm9
pxor xmm12, xmm1
pshufb xmm12, xmm5
movq xmm10, qword [rdx + r9*8]
movzx r9d, byte [rax - 0xc]
pinsrq xmm10, qword [rdx + r8*8], 1
paddq xmm10, xmm12
movzx r8d, byte [rax - 0xa]
paddq xmm10, xmm8
pxor xmm9, xmm10
pshuflw xmm9, xmm9, 0x39
pshufhw xmm9, xmm9, 0x39
paddq xmm1, xmm9
pxor xmm12, xmm1
movdqu xmm0, xmm12
psrlq xmm12, 0x3f
movdqu xmm8, xmm9
movq xmm7, qword [rdx + r9*8]
psllq xmm0, 1
movdqu xmm4, xmm8
pinsrq xmm7, qword [rdx + r8*8], 1
movzx r9d, byte [rax - 0xb]
paddq xmm11, xmm7
por xmm0, xmm12
movzx r8d, byte [rax - 9]
pxor xmm6, xmm11
pshufd xmm6, xmm6, 0xb1
paddq xmm3, xmm6
pxor xmm2, xmm3
movdqu xmm12, xmm2
pshufb xmm12, xmm5
movq xmm7, qword [rdx + r9*8]
movzx r9d, byte [rax - 8]
pinsrq xmm7, qword [rdx + r8*8], 1
paddq xmm7, xmm12
movzx r8d, byte [rax - 6]
paddq xmm7, xmm11
pxor xmm6, xmm7
pshuflw xmm9, xmm6, 0x39
pshufhw xmm6, xmm9, 0x39
movdqu xmm2, xmm6
paddq xmm6, xmm3
palignr xmm4, xmm2, 8
pxor xmm12, xmm6
movdqu xmm3, xmm12
palignr xmm2, xmm8, 8
movq xmm8, qword [rdx + r9*8]
psllq xmm3, 1
movzx r9d, byte [rax - 7]
pinsrq xmm8, qword [rdx + r8*8], 1
psrlq xmm12, 0x3f
movzx r8d, byte [rax - 5]
por xmm12, xmm3
movdqu xmm9, xmm12
movdqu xmm3, xmm6
palignr xmm9, xmm0, 8
paddq xmm8, xmm9
palignr xmm0, xmm12, 8
paddq xmm10, xmm8
movq xmm8, qword [rdx + r9*8]
pinsrq xmm8, qword [rdx + r8*8], 1
movzx r9d, byte [rax - 4]
pxor xmm4, xmm10
pshufd xmm4, xmm4, 0xb1
paddq xmm3, xmm4
movzx r8d, byte [rax - 2]
pxor xmm9, xmm3
pshufb xmm9, xmm5
paddq xmm8, xmm9
paddq xmm8, xmm10
pxor xmm4, xmm8
pshuflw xmm6, xmm4, 0x39
pshufhw xmm4, xmm6, 0x39
paddq xmm3, xmm4
movq xmm11, qword [rdx + r9*8]
movdqu xmm13, xmm4
pxor xmm9, xmm3
movdqu xmm6, xmm9
pinsrq xmm11, qword [rdx + r8*8], 1
movzx r9d, byte [rax - 3]
paddq xmm11, xmm0
psrlq xmm9, 0x3f
movzx r8d, byte [rax - 1]
paddq xmm7, xmm11
psllq xmm6, 1
pxor xmm2, xmm7
pshufd xmm2, xmm2, 0xb1
paddq xmm1, xmm2
por xmm6, xmm9
pxor xmm0, xmm1
pshufb xmm0, xmm5
movdqu xmm10, xmm6
movq xmm11, qword [rdx + r9*8]
pinsrq xmm11, qword [rdx + r8*8], 1
paddq xmm11, xmm0
paddq xmm11, xmm7
pxor xmm2, xmm11
pshuflw xmm4, xmm2, 0x39
pshufhw xmm2, xmm4, 0x39
paddq xmm1, xmm2
movdqu xmm7, xmm2
pxor xmm0, xmm1
movdqu xmm2, xmm0
psllq xmm2, 1
movdqu xmm4, xmm7
psrlq xmm0, 0x3f
por xmm0, xmm2
palignr xmm4, xmm13, 8
palignr xmm10, xmm0, 8
movdqu xmm9, xmm4
palignr xmm0, xmm6, 8
movdqu xmm12, xmm10
palignr xmm13, xmm7, 8
movdqu xmm2, xmm0
movdqu xmm6, xmm13
cmp rax, r10
jne 0x43eb88
movups xmmword [rdx + 0xc0], xmm1
pxor xmm12, xmm4
pxor xmm1, xmm8
pxor xmm12, xmmword [rcx + 0xa0]
movups xmmword [rdx + 0xd0], xmm3
pxor xmm2, xmm13
pxor xmm3, xmm11
pxor xmm1, xmmword [rcx + 0x80]
movups xmmword [rdx + 0xa0], xmm10
pxor xmm3, xmmword [rcx + 0x90]
pxor xmm2, xmmword [rcx + 0xb0]
movups xmmword [rdx + 0x80], xmm8
movups xmmword [rdx + 0xe0], xmm4
movups xmmword [rdx + 0xb0], xmm0
movups xmmword [rdx + 0x90], xmm11
movups xmmword [rdx + 0xf0], xmm13
movups xmm6, xmmword [rsp + 0x180]
movups xmmword [rcx + 0xa0], xmm12
movups xmm7, xmmword [rsp + 0x190]
movups xmm8, xmmword [rsp + 0x1a0]
movups xmmword [rcx + 0x80], xmm1
movups xmm9, xmmword [rsp + 0x1b0]
movups xmmword [rcx + 0x90], xmm3
movups xmm10, xmmword [rsp + 0x1c0]
movups xmmword [rcx + 0xb0], xmm2
movups xmm11, xmmword [rsp + 0x1d0]
movups xmm12, xmmword [rsp + 0x1e0]
movups xmm13, xmmword [rsp + 0x1f0]
movups xmm14, xmmword [rsp + 0x200]
movups xmm15, xmmword [rsp + 0x210]
add rsp, 0x228
ret